PHP 社區百花齊放,擁有大量的函數庫、框架和組件。PHP 開發者通常會在自己的項目中使用若干個外部庫,因此 PHP 代碼遵循(盡可能接近)同一個代碼風格就非常重要,這讓開發者可以輕松地將多個代碼庫整合到自己的項目中。
[PHP標準組](https://psr.phphub.org/)?提出并發布了一系列的風格建議。其中有部分是關于代碼風格的,即?[PSR-0](http://www.php-fig.org/psr/psr-0/),?[PSR-1](https://laravel-china.org/topics/2078),?[PSR-2](https://laravel-china.org/topics/2079)?和?[PSR-4](https://laravel-china.org/topics/2081)。這些推薦只是一些被其他項目所遵循的規則,如 Drupal, Zend, Symfony, CakePHP, phpBB, AWS SDK, FuelPHP, Lithium 等。你可以把這些規則用在自己的項目中,或者繼續使用自己的風格。
通常情況下,你應該遵循一個已知的標準來編寫 PHP 代碼。可能是 PSR 的組合或者是 PEAR 或 Zend 編碼準則中的一個。這代表其他開發者能夠方便的閱讀和使用你的代碼,并且使用這些組件的應用程序可以和其他第三方的組件保持一致。
* [閱讀 PSR-0](http://www.php-fig.org/psr/psr-0/)
* [閱讀 PSR-1](https://laravel-china.org/topics/2078)
* [閱讀 PSR-2](https://laravel-china.org/topics/2079)
* [閱讀 PSR-4](https://laravel-china.org/topics/2081)
* [閱讀 PEAR 編碼準則](http://pear.php.net/manual/en/standards.php)
* [閱讀 Symfony 編碼準則](http://symfony.com/doc/current/contributing/code/standards.html)
你可以使用?[PHP_CodeSniffer](http://pear.php.net/package/PHP_CodeSniffer/)?來檢查代碼是否符合這些準則,文本編輯器?[Sublime Text](https://github.com/benmatselby/sublime-phpcs)?的插件也可以提供實時檢查。
你可以通過任意以下兩個工具來自動修正你的程序語法,讓它符合標準:
* 一個是?[PHP Coding Standards Fixer](http://cs.sensiolabs.org/),它具有良好的測試。
* 另一個是隨 PHP_CodeSniffer 安裝的?[PHP Code 美化修整器](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically)。
你也可以手動運行 phpcs 命令:
~~~
phpcs -sw --standard=PSR2 file.php
~~~
它會顯示出相應的錯誤以及如何修正的方法。同時,這條命令你也可以用在 git hook 中,如果你的分支代碼不符合選擇的代碼標準則無法提交。
如果你已經安裝了 PHP_CodeSniffer,你將可以使用?[PHP Code 美化修整器](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically)?來格式化代碼:
~~~
phpcbf -w --standard=PSR2 file.php
~~~
另一個選項是使用?[PHP 編碼標準修復器](http://cs.sensiolabs.org/),他可以讓你預覽編碼不合格的部分:
~~~
php-cs-fixer fix -v --level=psr2 file.php
~~~
所有的變量名稱以及代碼結構建議用英文編寫。注釋可以使用任何語言,只要讓現在以及未來的小伙伴能夠容易閱讀理解即可。
- 歡迎
- 入門指南
- 使用當前穩定版本
- 內置的WEB服務器
- Mac安裝
- Windows安裝
- 代碼風格指南
- 語言亮點
- 編程范式
- 命名空間
- PHP標準庫
- 命令行接口
- Xdebug
- 依賴管理
- Composer 與 Packagist
- PEAR
- 開發實踐
- 基礎知識
- 日期和時間
- 設計模式
- 使用UTF8編碼
- 依賴注入
- 基本概念
- 復雜的問題
- 容器
- 延伸閱讀
- 數據庫
- MYSQL 擴展
- PDO 擴展
- 數據庫交互
- 數據庫抽象層
- 使用模板
- 好處
- 原生PHP模板
- 編譯模板
- 延伸閱讀
- 錯誤與異常
- 錯誤
- 異常
- 安全
- Web應用程序安全
- 密碼哈希
- 數據過濾
- 配置文件
- 注冊全局變量
- 錯誤報告
- 測試
- 測試驅動開發
- 行為驅動開發
- 其他測試工具
- 服務器與部署
- Platform as a Service (PaaS)
- 虛擬或專用服務器
- 共享服務器
- 構建及部署應用
- 虛擬化
- Vagrant
- Docker
- 緩存
- Opcode緩存
- 對象緩存
- 文檔撰寫
- 資源
- 社區
- Credits