php开发免不了要使用Composer,使用Composer有着明显的好处。一是可以很好的解决第三方包的相互依赖,二是可以方便进行代码的重用。
那如何制作自己的Composer包呢?
制作Composer包有几个步骤:
1、以git为例,先创建一个仓库,GitHub、Gitlab、码云都可以。甚至,使用svn也是可以的。
2、将仓库clone到本地,如下:
git clone 仓库地址
3、进入本地目录,然后执行初始化命令,如下:
在此过程中,命令行会提示你输入一些配置信息,以自动生成如下composer.json文件:
以上步骤操作完毕后,下面你需要在composer.json文件的同级目录,创建src目录。此目录将用来保存你的逻辑代码。
src目录创建完后,你需要在刚才的composer.json文件中加入一段:
这一段代码将确保使用Composer安装你的Composer包时,你的代码可以被自动加载到项目中。
因为按照psr-4自动加载的规则要求,命名空间的地址要与实际目录保持一致,因此,这里administrator\test\对应的就是你的实际目录层级和名称,也即是administrator\test\对应的是administrator/test/src目录。
4、待src目录中的主体逻辑编写完毕后,你可以提交这些代码到你的仓库。然后,在composer镜像网站提交你的仓库地址。
提交成功之后,在你的包列表中会出现如下的composer包信息。
至此,一个自定义的包就制作好了。
需要说明的是,这里我使用的composer官方镜像网站,但实际上,我们也可以不使用composer官方镜像网站。比如,直接使用git仓库,作为包的代码来源。
以上repositories就是用来指定代码来源,当type为composer就表示使用composer镜像网站(可以是官方的,也可以是非官方的),当type为vcs就表示直接使用代码仓库(可以是git仓库,也可以是svn仓库),具体的大家可以在这里查看:composer.json 架构 | Composer 中文文档 | Composer 中文网
使用vcs,虽然没有问题,而且也很安全,但是每引入一个自制包,你都要在repositories中增加一个地址项,这样太麻烦了。
那有没有一个方法可以让自制的composer包,能像官方仓库里的composer包一样使用呢?答,有的。在下一期的文章中,我将介绍如果搭建自己的composer包仓库。