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中添加的本地包路径删掉, 避免影响其他人使用
posted @ 2018-06-14 20:15  techisworld  阅读(519)  评论(0编辑  收藏  举报