composer 是 php 的一個依賴管理工具。 它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。
在相當長的一段時間內,如果應用依賴于第三方庫,那么最簡單的方式是,搜索下這些庫(比如PHPExcel),找到下載地址,下載個zip包,然后解壓到相應目錄下,根據文檔引入相應的文件。 如果使用Composer,就可以更加自動和優雅地完成這個過程。
此部分建議直接參考:http://blog.csdn.net/hel12he/article/details/46503875
在完成composer工具的安裝后,就可以通過組件化的方式創建項目了。
composer官網地址提供了組建資源庫“http://packagist.org/”, 在資源庫可以搜索相關的資源包,如需搜索一個日志的資源包, 可以通過關鍵字“log”來搜索。
假設項目中選擇使用一個名為monolog組建來完成日志功能, 則需要在項目根目錄下創建一個名為composer.json的文件, 在該文件中記錄所需要的組件名及版本,相應的格式如下:
{ "name":"qudian/model-test", "require":{ "monolog/monolog":"1.0.*" }}這里面包含兩個標簽,其中“name”標簽表示本項目的名稱,“qudian”是公司名,而“model-test”是項目名稱。 “1.0.*”為版本號,這里的版本號可以通過幾種方式約束,分別是:
確切版本號(如 1.1.1) 范圍版本號(如>=1.1、<2.3等) 通配符版本號(如1.0.*,用于匹配>=1.0 并且 <1.1的版本) 賦值運算版本號(如~1.0,用于匹配>=1.0 并且 <2.0的版本)
創建完composer.json文件后,在命令行中切換到項目根目錄, 然后輸入命令composer install
,接著composer會檢查composer.json文件中的組件名稱及版本,將它下載到當前目錄的vender文件夾下。
在完成組件下載后,會在當前目錄創建一個名為composer.lock的鎖文件,該文件將記錄當前項目依賴組件的確切版本號,當執行composer install
命令時會首先會查看該文件中的版本,如果存在則下載該文件中指定的版本。
如果某組件有了更新的版本,需要更新組件,可以通過composer update
命令實現。
通過composer的install命令出了可以下載組件以外,還會在vender目錄下提供一個自動加載文件,只需要通過require 'vender/autoload.php;'
語句引入這個文件,在使用下載的組件時就可以實現自動加載了。
如上一小節的示例中,下載了monolog組件, 就可以通過$myLog = new /monolog/Logger('qudian')
語句直接使用組件中的類庫,而autoload文件會自動加載相應的類文件。
實現文件自動加載需要有相應的規范進行約束,其中包括PSR-0、PSR-4、classmap、files四種規范形式,其中PSR-4是目前推薦使用的規范。 這四種規范形式本質上是定義了一個命名空間到實際文件的映射關系,通過這個映射關系,可以利用命名空間類精確定位到相應文件的具體路徑,進而實現“autoload”自動加載功能。
在前面的介紹中已經接觸到一些composer命令,下表對常用的命令進行了簡單的歸納,如果需要更加詳細的了解可以查看composer官網。
命令 | 功能 |
---|---|
composer list | 獲取幫助信息 |
composer init | 以交互的方式填寫composer.json文件的信息 |
composer install | 從當前目錄讀取composer.json文件,處理依賴關系,并安裝到vender目錄下 |
composer update | 獲取依賴的最新版本,升級composer.lock文件 |
composer require | 添加新的依賴包到composer.json文件這種并執行更新 |
composer search | 在當前項目中搜索依賴包 |
composer show | 列舉所有可用的資源包 |
composer validate | 檢測composer.json文件是否有效 |
composer self-update | 將composer工具更新到最新版本 |
composer create-PRoject | 基礎composer創建一個新的目錄 |
composer dump-autoload | 在添加新的類和目錄映射時更新autoloader |
新聞熱點
疑難解答