资讯专栏INFORMATION COLUMN

PHP 扩展开发检测清单(扩展开发必读)

lucas / 825人阅读

摘要:以下清单的内容将有助于完善你的扩展,并且在社区中得到更多的重视。编写单元测试覆盖大部分的代码。使用,一个常用的单元测试框架。使用持续集成使用服务来自动检查编码是否标准并且能否通过运行测试。

想要做出一个成功的 PHP 扩展包,不仅仅是简单的将代码放进文件夹中就可以了,除此之外,还有非常多的因素来决定你的扩展是否优秀。以下清单的内容将有助于完善你的扩展,并且在 PHP 社区中得到更多的重视。
1. 为你的扩展选择一个正确合适的名字

确保你的命名没有被其他项目使用。

扩展的名字需要和你的 PHP 命名空间保持一致。

不要在你的命名空间中使用自己的姓名或者其他带有个人色彩的东西。

2. 将你的扩展开源

GitHub 可以免费管理这一类公共的项目。

GitHub 非常有助于你来管理这个开源项目,并且方便他人获取你的扩展。

如果你不想使用,可以尝试替代品: Bitbucket.

3. 对自动加载友好一些

使用 PSR-4 兼容的自动加载器命名空间。

请将代码放在 src 文件夹里。

4. 通过 Composer 发布

确保可以通过 Composer 来找到你的类库, Composer 是PHP的一个依赖管理工具

发布在 Packagist上,Packagist 是一个主要的 Composer 包仓库。

5. 不局限于框架

不要局限于项目只能使用在一个框架上。

通过服务提供器来给框架提供特殊支持。

6. 遵循一种编码风格

强烈建议你坚持使用 PSR-2 编码风格。

使用代码自动格式化工具,比如 PHP Coding Standards Fixer 。

使用代码风格检测工具,比如 PHP Code Sniffer 。

7. 编写单元测试

覆盖大部分的代码。

使用 PHPUnit ,一个常用的 PHP 单元测试框架。

其他可选: phpspec , Behat , atoum , Codeception。

8. 为代码写注释

将注释当作内置文档来看待。

代码注释也可以改善 IDE 的代码自动完成功能, 比如 PhpStorm 。

可以自动转换成 API 文档, 查看 phpDocumentor 。

9. 使用语义化版本管理

使用 语义化版本号 来管理版本号。

遵循 主版本.次版本.补丁版本 规范。

让开发人员安全的升级软件,而不用担心会产生破坏性的改动。

请记得及时给发布版本打上标签!

10. 保持定期更新日志

明确标记并展示出版本之间显著的变化。

考虑遵循 Keep a CHANGELOG 的格式进行编写。

11. 使用持续集成

使用服务来自动检查编码是否标准并且能否通过运行测试。

在多个不同的 PHP 版本都进行运行测试会是个不错的办法。

确保提交或者拉取的时候都可以自动运行。

参考:Travis-CI,Scrutinizer, Circle-CI。

12. 编写大量的使用文档

一份优秀的文档对于扩展包来说至关重要。

至少要确保库中有详细的 README (自述) 文件。

可以尝试在 GitHub Pages 中托管文档。

可用参考: Read the Docs。

13. 包含一份授权(License)

包含一份授权协议,能够很有效地保护你的工作成果,并且很容易做到。

参考 choosealicense.com。 大部分PHP 开源项目使用 MIT 协议。

至少要在代码库中包含 LICENSE 文件。

还可以考虑在 Docblocks 中加入你的授权协议。

14. 欢迎大家的贡献

想要大家辅助改进项目,那一定要多多请求大家的贡献!

有一份 CONTRIBUTING 文件,列出贡献者的名单。

利用这份文件解释项目环境要求,例如测试环境。

更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28664.html

相关文章

  • PHP / Laravel API 开发推荐阅读清单

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社区优秀文章 Laravel 5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心 - 自造车轮。 API 文档神器 Swagger 介绍及在 PHP 项目中使用 - API 文档撰写方案 推荐 Laravel API 项目必须使用的 8 个...

    shmily 评论0 收藏0
  • PHP socket初探 --- 颤颤抖抖开篇libevent(一)

    摘要:原文地址正如标题所言,颤颤抖抖开篇。于是只能是你自己,把单子上的个快递逐次和收到的对比一遍,然后对比完毕后再把这个单子给了阿梅,然后阿梅继续等。剃光头前的阿梅,就是,不敢正眼看老板娘一眼。剃光头后的阿梅,就是,可徒手接魔鬼队的死亡之球。 [原文地址:https://blog.ti-node.com/blog...] 正如标题所言,颤颤抖抖开篇epoll。颤颤抖抖的原因大概也就是以前几乎...

    levinit 评论0 收藏0
  • 为什么Laravel会成为最成功的PHP框架

    摘要:年,将作为一种包含全新现代方法的框架介绍给大家。本文我们将讨论为什么会成为最成功的框架。身份验证安全是至关重要的。单元测试单元测试的开发是一个耗费大量时间的任务,但是它却是保证我们的应用程序保持正常工作的关键。中可使用执行单元测试。 2011年,Taylor Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家。Laravel最初的设计是为了面向MVC架构的,它可以满足...

    Terry_Tai 评论0 收藏0
  • PHP / Laravel 月刊 #23

    摘要:大刀阔斧的改造在学习了两遍之后,基于教程开发的校园二手书交易平台熊能本周阅读清单纸牌屋弗兰克知道的太晚了实现微信红包拆分算法聊聊最近求职发生的故事無铭更多现代化知识,请前往知识社区 showImg(https://segmentfault.com/img/bV8ctF?w=1650&h=1100); 最新资讯 Laravel 5.6 中文文档翻译完成,译者 60 人,耗时 10 天...

    klinson 评论0 收藏0

发表评论

0条评论

lucas

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<