php管理依賴關係工具composer學習筆記

首先支持下黃老師的視頻網站轉型
這篇composer的學習筆記也是根據他的視頻教程寫的,一共十集,講解的很簡單
感興趣的同志們能夠上他視頻網站購買視頻,網站地址放在文末
個人php博客:http://www.manyue.mephp

composer做用
一、自動安裝所須要的模塊,自動加載
二、管理項目,發佈到packeglist網上上去(packgist是composer默認的加載組件地址)git

安裝
windows下
進入 https://getcomposer.org/ 找到Composer-Setup.exe 下載安裝,安裝到php.exe文件夾下
安裝到phpstrom
進入 https://getcomposer.org/ 找到composer.phar 下載
進入phpstrom->file->setting->command Line Tool Support
點擊加號,選擇composer。visibility選擇global,接着輸入composer.phar路徑確認
安裝完畢github

開始使用composer加載咱們須要的第三方組件
經過創建composer.json文件告訴composer咱們須要依賴哪一個文件
該文件可經過命令行建立:composer init
json文件格式以下:web

{
"name": "Administrator/composer-test",
"repositories":[
{
"type":"vcs",
"url":"在github上要加載的模塊的git地址"
},
{
"type":"pera",
"url":"xxx"
},
{
"type":"composer",
"url":"xxx"
}
],
"require": {
"zendframework/zendframework":"2.3.1"
}
}

【require】
首先說說require,packagist給出了三種寫法,冒號前是開發商和包的名字,冒號後是版本,參見下圖
咱們要告訴composer我這個項目依賴哪一個包(假設咱們須要zendframework2的包)
先上https://packagist.org搜索zendframework2
將」zendframework/zendframework」:」2.3.1″ 輸入(開發商/包的名字:版本號)
composer.json配置完後,在命令行執行composer install,它會按照你的json文件配置自動下載zf2框架,並實現自動加載
用命令composer update更新要新加載的組件
(三種寫法)↓
1json

【repositories】
若是我要用的組件不在packagist上,在github上怎麼辦
先定義庫的地址(見上面代碼
原理是:若是我在require裏定義要加載的庫在默認的getpackagist.org上找不到,則會到repositoiries裏定義的網站裏找segmentfault

加載自定義組件(自身組件)
仍然是在composer.json文件裏配置
先建個類庫,好比izumi/EventManager/EventManager.php(供應商名+文件夾名+類文件)(phpflag規範規定類名和文件名必須是同樣的)windows

{
"name": "izumi/composer-test",
"autoload":{
"psr-0":{
"izumi\\":"vendor"
}
}
}

規定psr-0規則,izumi\\是廠商名(也是命名空間),vendor /表示供應商所在的文件夾名
配置完成後執行命令行composer install
加載位於vender下的沒有定義命名空間的類
好比在vendor下有個Tools.phpcomposer

{
"name": "izumi/composer-test",
"autoload":{
"psr-0":{
"Tools":"vendor"
}
}
}

Tools表示是一個類,告訴composer這個類所在的文件夾是vendor
Tools不寫的話,會將vendor文件夾做爲全局命名空間,vendor下的類會所有加載
自動加載會有必定的性能消耗
能夠用classmap來定義要加載類的絕對地址框架

"classmap":["vendor/izumi","vendor/Tools.php"]

自動加載一個函數
好比在vendor/izumi/functions.php裏寫個getTest方法
咱們但願咱們的每個類都去調用這個functions.php的getTest方法
這時候咱們能夠定義files函數

"files":["vendor/functions.php"]

將本身寫的包提交到packagist
①首先這個包內必需要有個composer.json文件(能夠cd到該包內,執行composer init命令)
②名字要小寫
③能夠先將整個包提交到github上
https://packagist.org/ 點擊submit package ,能夠先經過github帳戶登陸網站⑤輸入要提交包的git地址讓你提交到packagist的包跟着github更新而更新在github該包的頁面,點擊setting->webhooks&Services->Add service->輸入packagist->提示輸入github密碼->輸入token(在packagist.org點擊用戶名點擊Show API Token獲取token)

相關文章
相關標籤/搜索