想要做出一個成功的 PHP 擴展包,不僅僅是簡單的將代碼放進文件夾中就可以了,除此之外,還有非常多的因素來決定你的擴展是否優秀。以下清單的內容將有助於完善你的擴展,並且在 PHP 社區中得到更多的重視。 1. 為你的擴展選擇一個正確合適的名字 確保你的命名沒有被其他項目使用。 擴展的名字需要和你的 ...
想要做出一個成功的 PHP 擴展包,不僅僅是簡單的將代碼放進文件夾中就可以了,除此之外,還有非常多的因素來決定你的擴展是否優秀。以下清單的內容將有助於完善你的擴展,並且在 PHP 社區中得到更多的重視。
1. 為你的擴展選擇一個正確合適的名字
- 確保你的命名沒有被其他項目使用。
- 擴展的名字需要和你的 PHP 命名空間保持一致。
- 不要在你的命名空間中使用自己的姓名或者其他帶有個人色彩的東西。
2. 將你的擴展開源
3. 對自動載入友好一些
- 使用 PSR-4 相容的自動載入器命名空間。
- 請將代碼放在
src
文件夾里。
4. 通過 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 知識社區