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

翻译 Summer ⋅ 于 3个月前 ⋅ 1322 阅读 ⋅ 原文地址
这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

file

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

NearTheShore 翻译于 3个月前

1. 为你的扩展选择一个正确合适的名字

  • 确保你的命名没有被其他项目使用。
  • 扩展的名字需要和你的 PHP 命名空间保持一致。
  • 不要在你的命名空间中使用自己的姓名或者其他带有个人色彩的东西。

2. 将你的扩展开源

  • GitHub 可以免费管理这一类公共的项目。
  • GitHub 非常有助于你来管理这个开源项目,并且方便他人获取你的扩展。
  • 如果你不想使用,可以尝试替代品: Bitbucket.

3. 对自动加载友好一些

  • 使用 PSR-4 兼容的自动加载器命名空间。
  • 请将代码放在 src 文件夹里。
NearTheShore 翻译于 3个月前

4. 通过 Composer 发布

  • 确保可以通过 Composer 来找到你的类库, Composer 是PHP的一个依赖管理工具
  • 发布在 Packagist上,Packagist 是一个主要的 Composer 包仓库。

5. 不局限于框架

  • 不要局限于项目只能使用在一个框架上。
  • 通过服务提供器来给框架提供特殊支持。

6. 遵循一种编码风格

ibucoin 翻译于 3个月前

7. 编写单元测试

8. 为代码写注释

  • 将注释当作内置文档来看待。
  • 代码注释也可以改善 IDE 的代码自动完成功能, 比如 PhpStorm
  • 可以自动转换成 API 文档, 查看 phpDocumentor

9. 使用语义化版本管理

  • 使用 语义化版本号 来管理版本号。
  • 遵循 主版本.次版本.补丁版本 规范。
  • 让开发人员安全的升级软件,而不用担心会产生破坏性的改动。
  • 请记得及时给发布版本打上标签!
ibucoin 翻译于 3个月前

10. 保持定期更新日志

  • 明确标记并展示出版本之间显著的变化。
  • 考虑遵循 Keep a CHANGELOG 的格式进行编写。

11. 使用持续集成

  • 使用服务来自动检查编码是否标准并且能否通过运行测试。
  • 在多个不同的 PHP 版本都进行运行测试会是个不错的办法。
  • 确保提交或者拉取的时候都可以自动运行。
  • 参考:Travis-CIScrutinizerCircle-CI

12. 编写大量的使用文档

  • 一份优秀的文档对于扩展包来说至关重要。
  • 至少要确保库中有详细的 README (自述) 文件。
  • 可以尝试在 GitHub Pages 中托管文档。
  • 可用参考: Read the Docs
NearTheShore 翻译于 3个月前

13. 包含一份授权(License)

  • 包含一份授权协议,能够很有效地保护你的工作成果,并且很容易做到。
  • 参考 choosealicense.com。 大部分PHP 开源项目使用 MIT 协议
  • 至少要在代码库中包含 LICENSE 文件。
  • 还可以考虑在 Docblocks 中加入你的授权协议。

14. 欢迎大家的贡献

  • 想要大家辅助改进项目,那一定要多多请求大家的贡献!
  • 有一份 CONTRIBUTING 文件,列出贡献者的名单。
  • 利用这份文件解释项目环境要求,例如测试环境。
cfaner 翻译于 3个月前

原文地址:http://phppackagechecklist.com/#1,2,3,4,...

译文地址:https://laravel-china.org/topics/10032/p...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    您需要登陆以后才能留下评论!

    Composer 中国全量镜像

    Top 100 扩展包

    Lumen 中文文档

    Laravel 速查表

    Laravel 中文文档

    Laravel 项目开发规范

    Laravel 开发环境部署

    Elasticsearch-PHP 中文文档

    Lumen 中文文档

    GraphQL PHP 中文文档

    社区文档撰写指南

    TDD 构建 Laravel 论坛笔记

    PHP PSR 标准规范

    PHP 设计模式全集

    Dingo API 中文文档