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中添加的本地包路径删掉, 避免影响其余人使用