composer學習實踐

一、基礎知識

安裝依賴
    composer install 
  • install 命令將會檢查鎖文件 composer.lock 是否存在,如果存在,它將下載指定的版本(忽略 composer.json 文件中的定義),如果不存在 composer.lock 文件,Composer 將讀取 composer.json 並創建鎖文件
  • 該命令會做兩件事情,一是下載項目依賴包到 vendor 目錄,二是創建 composer.lock 文件(如果不存在)
添加依賴
  • 方式一
    composer require packagistName
  • 方式二
    • 手動更改添加 composer.json 文件的依賴項 require
    • 執行 composer update [packagistName] 命令進行安裝
更新依賴
    composer update [packagistName]
自動加載
  • psr-4 自動加載定義一個從命名空間到目錄的映射
  • classmap 是指沒有命名空間的類庫進行自動加載
  • files 自動加載文件,一般用於公共函數文件
  • 自動加載時需要引入 vendor/autoload.php 文件
  • 當項目添加了沒有命名空間的類庫文件,要想實現自動加載,需要執行 composer dump-autoload 命令
{
    "require": {
        "nesbot/carbon": "^1.39",
        "larapack/dd":"1.*"
    },
    "autoload": {
        "psr-4": {
            "app\\": "app/"
        },
        "classmap": ["lib/"],
        "files": ["app/common/helpers.php"]
    }
}
發佈依賴
  • 發佈到 VCS(線上版本控制系統)
  • 發佈到 packagist
  • 發佈到其他資源庫

二、學以致用,創建一個項目

首先創建 composer.json 文件

{
    "name": "phpzs4336/topmdrt",
    "type": "project",
    "require": {
        "nesbot/carbon": "^1.39",
        "larapack/dd":"1.*"
    },
    "autoload": {
        "psr-4": {
            "app\\": "app/"
        },
        "classmap": ["lib/"],
        "files": ["app/common/helpers.php"]
    }
}

分別創建 app 應用目錄,lib 類庫目錄,public 公共訪問目錄(包含入口文件 index.php)

<?php
	include '../vendor/autoload.php';
	
	use Carbon\Carbon;
	use app\controller\TestController;
	
	//使用自動加載類
	$qr = new QRcode();
	$qr->getQrcode();
	
	echo "<hr>";
	
	//使用命名空間類
	$test = new TestController();
	$test->index();
	
	echo "<hr>";
	
	//使用公共函數
	echo get_rand_str();
	
	echo "<hr>";
	
	Carbon::setLocale('zh');
	$humans = Carbon::now()->subDays(5)->diffForHumans();
	dd($humans);
	

瀏覽器訪問入口文件,結果如下圖
img
附:項目代碼地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章