Composer的簡單使用介紹

jopen 8年前發布 | 9K 次閱讀 Composer PHP開發

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

來自: http://blog.patpig.com/2016/01/01/php-composer/

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