PHP-FIG 新網站

Screen Shot 2015-10-29 at 9.46.27 AM

PHP-FIG 終於通出新網站了,介面比上一版本還要清楚許多,首頁直接清楚列出三大標準參考 AUTOLOADING, INTERFACES, CODING STYLES,網站的 Souce Code 可以在 Github 上面找到,目前 FIG 只有釋出 PSR-0, PSR-1, PSR-2, PSR-3, PSR-4, PSR-7,其他有很多部分目前都在 Review 中,詳情可以參考 PHP Standards Recommendations,Coding Style 部分,我建議可以裝 PHP-CS-Fixer 搭配 SublimText 編輯器就可以自動幫你校正所有 PHP Source Code。新人建議可以先把 PSR-2 看完,這樣團隊 Coding Style 才能達到一致性。

在 Windows 上安裝 Sublime Text 2 搭配 PHP-CS-Fixer 套件

Note: 2014.12.22 PHP-CS-Fixer 不支援 "--level": "all" 設定了

Sublime_Text_Logo

由於近幾年來 PHP-Fig 發佈 PSR-0 ~ PSR-4 標準,所以在撰寫 PHP 程式碼時,請依照標準,而為了符合這標準,@fabpot 寫了一個轉換工具叫 PHP-CS-Fixer (PHP Coding Standards Fixer) 最主要目的是按照 PSR-1 and PSR-2 的 Coding Style,只要透過 command 就可以將程式碼轉成標準格式。此篇要紀錄在 Windows 搭配 Sublime Text 安裝 PHP-CS-Fixer。

在 Sublime 編輯器可以使 ctrl + shift + p 後選 Install package 找到 PHPCs 點下安裝即可。打開 Preferences -> Package settings -> PHP Code Sniffer -> Settings,裡面把相關路徑補上去即可。底下是參考設定

[Read More]

PHP The Right Way 出電子書

PHP  The… by Phil Sturgeon et al. [Leanpub PDF iPad Kindle

最近看到前 CodeIgniterFuelPHP 作者 Phil SturgeonPHP The Right Way 發起人 Josh Lockhart 合力推出電子書,目前一本定價為 4 塊美金,當然作者也不一定要使用者付錢,您可以直接線上看。這本線上 PDF 很適合丟給剛進來公司的新人,此新人當然對 PHP 有一定程度的了解,團隊內最重視的就是整個專案素質,也就是如果能達到多人維護同一個專案,讓其他人檢視的時候,不會覺得是好多人共同維護一個專案,也就是要求大家寫法一致 (Code Style Guide)。

快速修正專案 PHP Coding Standards

底下是之前的投影片教導創業團隊制定 PHP 程式碼規範,讓工程師可以遵循此規則達到團隊合作

投影片內容都是現有 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2 規則,那如何將既有專案的 Coding Style 轉換成上述標準呢,可以透過 PHP Coding Standards Fixer tool 來快速完成,此工具是由 Symfony Framework 完成。透過此工具可以快速且無痛轉換程式碼風格,舉個簡單例子:

[Read More]

關於 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2

上禮拜寫了一篇 寫出好維護的 PHP 程式碼,看到 gslin 大神回應了一篇 關於可維護的 PHP 專案:PHP-FIG 的 PSR-0、PSR-1、PSR-2,其實我已經關注 PHP FIG 有一陣子了,FIG 所定義的三份文件 PSR-0 (Auto loading Standard), PSR-1 (Basic Coding Standard), PSR-2 (Coding Style Standard) 寫的非常清楚,目的就是讓 PHP Open Source 專案有共同的 Coding Standard,方便大家共同開發。所以上禮拜提到的投影片內容有大部份參考了這份文件,裏面的內容比較不同的地方就差於 Control Structures 部份,舉個簡單例子: 寫 if 條件式,網路上只有兩種寫法 <?php if ($a == $b) { …… }[/code]

另外一種寫法

[code lang=“php”]<?php if ($a == $b) { …… }[/code]

[Read More]