一、基礎知識
安裝依賴
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);
瀏覽器訪問入口文件,結果如下圖
附:項目代碼地址