Composer入門筆記

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中添加的本地包路徑刪掉, 避免影響其餘人使用
相關文章
相關標籤/搜索