Composer的簡單使用介紹
Composer很好的解決了PHP的包管理和依賴問題,只需要import一個文件,Composer中管理的所有庫就會按需加載,而不需要每個import。
先介紹一下Composer的安裝。Composer的官方地址: https://getcomposer.org/
安裝
curl -sS https://getcomposer.org/installer | php
這樣在當前目錄下會下載一個composer.phar的文件,為了方便,我們可以重命名一下,并放到/usr/local/bin下,方便執行。
mv composer.phar /usr/local/bin/composer
使用
一般我習慣把Composer放在/opt下,所以先創建一個Composer的目錄
mkdir /opt/composer
先下載一個KLogger,一個寫日志的庫,本人比較喜歡。
cd /opt/composer composer require katzgrau/klogger:dev-master
這樣,KLogger就被下載下來了,使用很簡單,只需要引入一個文件。
<?php require '/opt/composer/vendor/autoload.php'; $logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs'); ...
KLogger可以使用了,我們在下載一個別的庫,Medoo:一個輕量級的數據庫框架。同樣的方式來下載。
cd /opt/composer composer require catfan/Medoo
使用同理
<?php require '/opt/composer/vendor/autoload.php'; $medoo = new medoo(); //繼續使用KLogger $logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs'); ...
使用很簡單,只要引入了 vendor/autoload.php ,就可以自動引入用到庫,的確很酷。
加速
如果發現composer執行起來很慢,可以考慮換個鏡像。這里推薦一個日本的鏡像: http://composer-proxy.jp/ 。
執行
composer config -g -e
編輯后
{
"config": {}
,
"repositories": [
{ "packagist": false },
{
"type": "composer",
"url": "http://composer-proxy.jp/proxy/packagist"
}
]
}如果發現composer長時間沒反應,可以在執行時候加入 -vvv 選項,可以輸出更多信息,方便查找問題。
composer -vvv require ...
最后
PHP的 spl_autoload_register 可以很方便做按需引入,當 new 一個類沒發現的時候,就會觸發,然后我們自己按照規則來處理引入。
一個簡單的例子
<?php
class ClassAutoloader
{
public function __construct()
{
spl_autoload_register(array($this, 'loader'));
}
public function loader($className)
{
$file = dirname(__FILE__) . '/' . $className . '.php';
if (is_file($file)) {
require $file;
}
}
}
$autoloader = new ClassAutoloader();具體路徑規則可以自己定義,可以參考 PSR
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!