使用composer创建php组件
前言当今php生态环境,composer已经成为必不可少的组件,相信大多数人已经使用过别人的composer包, 那么如何创建一个php组件,发布到packigist从而把你的创意贡献给开源社区呢?
确定厂商名和包名在开发php组件之前,首先要选择组件的厂商名和包名,已用来区分组件属于谁,建议厂商名和包名都是用小写字母.
确定命名空间命名空间不必和包名一直,注意不要与其他组件命名空间重复.
生成composer.json文件我们可以简单使用composer init 创建项目的composer.json 文件,
之后会以问答的形式提示你填写信息, 以下 > 后 表示交互时输入的信息
> composer init welcome to the composer config generator this command will guide you through creating your composer.json config.package name (<vendor>/<name>) [composertest/example]: # 厂商名与包名> suntianxiang/cn-oauthdescription []: > a library for wechat,alipay,weibo oauth2 client # 详细信息author [stx <334965556@qq.com>, n to skip]:minimum stability []: > beta # 下载时倾向开发版还是稳定版package type (e.g. library, project, metapackage, composer-plugin) []: > library # 包的类型,我们属于library,固填librarylicense []: mit # 开源协议would you like to define your dependencies (require) interactively [yes]? > no # 是否需要定义你的依赖would you like to define your dev dependencies (require-dev) interactively [yes]? > no{ name: suntianxiang/cn-oauth, description: a library for wechat,alipay,weibo oauth2 client, type: library, require-dev: { phpunit/phpunit: ^6.5 }, license: mit, authors: [ { name: stx, email: 334965556@qq.com } ], minimum-stability: beta, require: { php: > 7.0, guzzlehttp/guzzle: ^6.3 }, autoload: { psr-4: { cnoauth\\: src } }}
最后会输出生成的composer.json文件 ()
实现组件功能现在我们要实现组件的具体功能了。这一步我们要便携组成php组件的类、接口和形状。编写什么类以及编写多少类完全取决于php组件的作用。
组件的文件组织方式如下:
root: src/ 这个目录包含组件的源码 (例如php文件) tests/ 单元测试文件 composer.json composer配置文件 readme.md 组件介绍,说明,使用方法等, markdown格式 ...
如果你还不太清楚,可以参考一些优秀的组件仓库的组织结构
版本控制在把组件发布到packagist之前,我们还需要把组件发布到公开的代码仓库中,
例如 github, 把写好的代码发布到了github上 并创建一个release
提交到packagist现在可以把组件提交到packagist了。
登录packagist后, 单机网页右上角的 “submit package”按钮,然后在 “repository url” 中输入完整的git仓库url,再单机“check”按钮。组件创建完成
我们可以在github上创建一个钩子,每次更新组件的仓库时通知packgist,在仓库中设置钩子的方法参阅https://packagist.org/about#how-to-update-packages
使用这个组件一切都完工了!现在任何人都能使用comopser安装这个组件了。
composer require suntianxiang/cn-oauth
以上就是怎么使用composer创建php组件的详细内容。
