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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!