php 制作package满足公司的解耦业务

参考文档

  1. 介绍版本约束 http://overtrue.me/articles/2017/08/about-composer-version-constraint.html
  2. 介绍composer https://docs.phpcomposer.com/04-schema.html#autoload

场景:

另一个项目组需要我们支撑一个功能,并且这个功能也可能在其他的项目组中用到,
这个任务刚好落到了我的手上,这种问题为乐解耦和,一般采用两种解决方案
    1.  API
    2.  package
考虑到工作效率的问题(不用框架),我采用了第二种

package的简易制作

1. 封装
    1.1 package 主体分为三部分
        . src/ 
        .  composer.json  
        .  test   单元测试使用
        composer.json
        {
            "name": "gray_score/level", // `包的名字`
            "description": "包的介绍",   //`包的描述`
            "license": "MIT",   // `协议` 闭源软件
            "minimum-stability": "stable", // 下载稳定版 "gray_score/level": "dev-master" 代表该分支下的最新提交  合起来就是最新稳定版
            "authors": [ // 作者
                {
                    "name": "carson",
                    "email": "[email protected]"
                }
            ],
                "autoload": {  //自动加载映射  `eg:gray\level namespace 映射到 src目录下面`
                "psr-4": {
                    "gray\\level\\": "src/",
                    "gray\\test\\": "test/"
                }
            }
        }
        然后src里面完成逻辑的处理  ...
        到目前为止 一个简单包的工作已经完成了

2.  上传github

        和普通上传没什么区别

3.  上传到packagist 
     . 前提当然是已经注册账户
     . 点击Submit 按钮
         填写刚才上传github获取到的地址
         `check` `check` `check` 
 . 如果包的名字没有被占用 恭喜你你成功的船建了一个包     

 4.  自动同步

     现在还没有结束,包和github还不能实时同步                
     1.  github   资源setting,点击Integrations & services 按钮 
     2.  填写packagist 上面的username  and token  点击确定 完工

你可能感兴趣的:(composer)