什麼是 Composer ?
Composer
是 PHP
用來管理依賴關係的工具,可以通過它自動安裝這些依賴的庫檔案。此外,Composer
可以實現類的自動載入以及建立自己的包。 Composer
的安裝 非常簡捷。
實現類的自動載入
在 /home/web/mytp
目錄下建立 composer.json
檔案
{
"autoload": {
// 仿 ThinkPHP 構建名稱空間 app
"psr-4": {"app\\": "application/"}
}
}
上述程式碼表示自動載入的類檔案須遵循 PSR-4
規範, app\\
表示名稱空間 app
, application/
表示 application
目錄,含義為將名稱空間 app
對映到 application
目錄,需要載入名稱空間 app
的類時,在 application
目錄中查詢相應檔案。名稱空間 app
的子名稱空間會對映為 application
目錄下的對應目錄。
名稱空間 目錄
app\index\controller\Index <=> application/index/controller/Index.php
進入到 composer.json
所在目錄,執行 composer install
命令初始化自動載入,並安裝相應依賴關係所需元件。正常情況下輸出
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
操作完成後,當前目錄下會生成一個 vendor
目錄,結構如下
vendor
├── autoload.php
└── composer
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
├── ClassLoader.php
├── installed.json
└── LICENSE
需要更新依賴包或者庫檔案時,只需修改 composer.json
的檔案至需要的版本,再執行 composer update
命令。引入名稱空間機制後,類名無需顯示控制器或者模板的名稱,更改如下
EmployeeController.php => Employee.php
EmployeeModel.php => Employee.php
// 相應檔案中的類名也需要做更改以符合 PSR-4 規範
在入口檔案 index.php
中引入 vendor/autoload.php
<?php
require '../vendor/autoload.php';
編輯 Shell
指令碼 start.sh
實現 Nginx
與 Php-fpm
開機自啟
#!/bin/bash
#chkconfig:2345 80 30
#description:auto_run
#
#
/usr/local/nginx/sbin/nginx
/usr/local/php/sbin/php-fpm
systemctl stop firewalld
新增指令碼到開機自動啟動專案中
chkconfig --add start.sh
訪問 diy.tp/index.php
類的自動載入功能已經實現
本作品採用《CC 協議》,轉載必須註明作者和本文連結