标签 composer 下的文章

如果随着php命名空间使用,采用composer会非常方便,不用些重复代码,每个项目只需要通过composer就能重复利用库代码.

1 . 在github上注册一个项目,比如我的,注册为名称fn,项目版权选择的是MIT,然后更新到本地电脑,方便编写库.在本地fn目录下创建src目录,并新建文件Fn.php在src目录下.
2 . 通过cmd命令切换到fn目录下,输入composer init,来创建composer.json文件,注意编码要改成utf-8,生成的好像不是,当然也可以找一个复制过来修改.
composer.json更容是

{
    "name": "logoove/fn",
    "description": "这是一个函数组成的类库,包含大量自定义函数,后续都会从这里更新,以后不用重复定义常见方法",
        "type": "library",
          "license": "MIT",    
    "authors": [{
        "name": "yoby",
        "email": "logove@qq.com"
    }],
  "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "logoove\\fn\\": "src"
        }
    }
}

具体参数意思是name为项目名字,通过/隔开,logoove是我github账号名,fn是项目名字
description是描述,type不用改,authors自己改成你自己的,autoload是自动加载规则,改成你自己路径
完成以后就能够编写Fn.php自己了.
我们可以使用命名空间,命名空间最好统一采用 用户名\项目名
文件名要和你定义的类名相同.
没有使用命名空间的类的加载采用 require_once "PHPExcel.php";这种方式即可
这样我们就可以把以前一些项目改写成符合自动加载类库.

3 . 编写好以后记得提交到到github,然后去 (https://packagist.org) 注册一个帐号,最好也采用github帐号登录.你的每一个库在github上都有独立项目名.最后提交github地址到packagist.org即可.我们以后修改项目在github,那么composer这边如何更新呢,那就是设置同步.
先切换到profile,可以看到底部有个Your API Token,复制下来,然后去github项目的settings->Integrations & services->add server->Packagist,这时候有user,token,domain三个要填写的,我的就是 logoove,刚刚复制的Token,域名就是https://packagist.org/,这样就能自动同步了.
4 . 最后你的库就完成了,任何php项目都能使用了,一个命令搞定,免去每次复制粘贴库代码,你也能分享给更多用户使用