一、基礎知識
安裝依賴
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);
瀏覽器訪問入口檔案,結果如下圖
附:專案程式碼地址