前言
接觸laravel之后,才知道有PSR,composer之類的東西,PHP已經不再是一門草根語言了。最近在嘗試玩thrift,需要安裝PHP thrift依賴庫,使用composer install apache/thrift會提示composer.json文件不存在,這個文件確實不存在,難道就不能安裝了嗎?后來發現可以通過composer require apache/thrift安裝,這個命令會嘗試創建composer.json配置文件。通過這件事情,發現對composer還是不是很了解,於是花了點時間詳細了解,於是使用自己的語言編織了這篇文章。
實現原理
獲取包元信息,項目源碼地址庫下載包以及依賴的包,安裝到本地
安裝
composer需要PHP5.3.2+版本以及需要開啟phar擴展
composer是由PHP編寫以及使用PHP phar打包壓縮的一個linux shell環境下可執行的文件(phar格式文件可以通過PHP命令行執行)
[wadeyu@localhost ~]$ curl -sS https://getcomposer.org/installer | php
[root@localhost wadeyu]# mv composer.phar /usr/local/bin/composer
配置
設置鏡像地址(中國的鏡像地址 -g參數表示全局配置)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
設置進程執行超時時間(單位秒)
composer config -g process-timeout 600
查看配置列表
composer config -g -l
配置文件說明
項目根目錄下命名為composer.json的文件,使用JSON格式定義項目或者包相關的信息
使用
composer命令自動更新(有時候更新不了:()
composer self-update
聲明依賴包(當前執行目錄不存在composer.json會嘗試創建)
composer require 包名
安裝包(composer.json聲明需要安裝的依賴包)
composer install
更新包
composer update [包名1 包名2 ...]
搜索包(沒有composer.json配置文件會執行遠程搜索速度會比較慢:()
composer search 模式符
顯示命令列表
composer list
更新autoload自動加載配置
composer.json添加autoload配置
composer dump-autoload
后記
我大概深入的了解了下,現在基本上能夠滿足我日常使用,后面碰到問題可以查看下面的參考資料。多個項目間需要共享代碼而又不能發布到公共倉庫時,可以搭建本地包元數據服務以及包源碼下載的代碼管理服務,這個應該是可行的,我沒有嘗試過:(
參考資料
【1】composer中文網
http://www.phpcomposer.com/
【2】composer工具手動下載地址
https://getcomposer.org/download/
【3】Packagist/Composer中國全量鏡像
http://pkg.phpcomposer.com/
【4】composer.json配置詳細說明
http://docs.phpcomposer.com/04-schema.html
【5】composer基本用法
http://docs.phpcomposer.com/01-basic-usage.html