Composer入門筆記
建立本身的composer包
- composer init一個項目, 最終生成的composer.json內容大體以下
{
// 名稱, 必填
"name": "lkker/points",
"description": "Lkker's Points Vendor",
"type": "library",
// 版本,必填
"version": "dev-master",
"license": "MIT",
"authors": [
{
"name": "break",
"email": "m139063902573@163.com"
}
],
"require": {},
"autoload": {
"psr-4": {
// 定義命名空間的路徑
"Points\\": "src/Points"
},
"files": [
// 引用的全局文件路徑.相對路徑起始是與composer.json同級
"src/const.php",
"src/helpers.php"
]
},
// 擴展源路徑, 可填寫多個, 這個後面會再提到
"repositories": {
"packagist":{
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
將擴展提交到本身的版本庫管理和使用
- 這裏使用oschina的git.
- 首先創建一個版本庫, 就叫points, 而後將
- 由於是給本身團隊的項目使用, 因此要作好私有化處理.而後將以前包中的composer.json以及同級的其餘文件新增到倉庫中.複製一下倉庫的git地址
- 接下來到咱們要使用該包的項目中, 打開項目的composer.json, 在repositories中添加
"repositories": {
// 這裏的名字就是包的composer.json中的name, 必須一致
"lkker/points": {
// 定義鏈接類型
"type": "git",
// 粘貼咱們剛纔複製的包的git地址
"url": "git@git.oschina.net:lkkerwx/points.git"
}
- 以後在項目中執行composer update lkker/points -vvv, 看下一是否有報錯.若是沒有, 說明引入成功, 到項目中的vendor/lkker目錄下, 就能夠看到points目錄了, 裏面就是咱們以前建立的內容.這就表示咱們能夠在項目中正常使用了.
- 這種方式能夠有效的在多個項目中共用相同的代碼內容, 若是內容有變更只須要在項目中執行composer update 包名稱 便可完成更新.
更方便的修改包
- 若是按照以往的思惟方式, 咱們須要單獨開啓一個窗口去編輯包, 同時還要在另外一個窗口裏編輯項目.這裏composer提供了目錄映射的功能.
- 打開咱們項目的composer.json, 找到repositories在其中添加
"repositories": {
// 隨便起個名字
"local-dev": {
// 定義成路徑的方式
"type": "path",
// 這個路徑就是包的具體路徑, 不要寫項目中的vendor下包的路徑, 咱們想要實時改動的是包的本體
"url": "/Users/break/PhpstormProjects/lkker_pc/points/points"
}
}
- 而後在項目中執行如下composer update 包名稱 . 這時候咱們再查看vendor下對應的包目錄, 會發現變成了一個軟連.此時若是咱們本地有多個項目都在使用這個包, 而咱們想改動包的某個地方, 就能夠實時在各個項目中看到效果了.不過這種方式僅推薦在開發時使用一下, 提交項目的時候記得將composer.json中添加的本地包路徑刪掉, 避免影響其餘人使用