如何為 PHP 貢獻程式碼

發表於2012-05-01

來源:laruence

PHP在之前把原始碼遷移到了git下管理, 同時也在github(https://github.com/php/php-src)上做了映象, 這樣一來, 就方便了更多的開發者為PHP來貢獻程式碼.

今天寫這篇文章, 就是為了給在國內的同學們, 願意為PHP開源社群做貢獻的同學們, 做個示例, 如何為PHP來貢獻你的智慧.

現在, 假設你要為貢獻一個新特性, 那麼你除了要做下面的這些步驟以外, 還需要在wiki.php.net上提交一個RFC, 待會我會介紹這個, 現在讓我們先簡單點, 假設你只是要為PHP修復一個bug(一般來說, 大家可以在這裡發現PHP已經報告的bug: PHP Bugs). 現在假設你已經想好了要怎麼修復這個Bug.

1. 首先, 你需要有一個github的賬號, 沒有的話, 來這裡註冊: 註冊github.

2. Fork PHP的原始碼, 在PHP的Github頁面上的右上角有一個fork按鈕, 點它

3. Fork以後, 你就有了一份屬於你自己的PHP原始碼倉庫, 現在你就可以在這個倉庫下, 修改PHP的原始碼來為它修復Bug了.

具體開發沒什麼好說的, 不過如果對於Git的使用有問題的話, 可以參考Git使用手冊, 比如這個: ProGit

我這裡為大家提供一個簡單的說明, 如果在Github上開始開發, 在你自己的PHP程式碼倉庫的頁面上, 會有一個說明, 比如在我的PHP倉庫頁面上https://github.com/laruence/php-src:

然後, 我就在本地開發環境上, 執行:

然後, 你就得到了一個php-src目錄, 進去開發吧, :)

4. 等你修復完成以後, 你提交到你屬於你自己的這個PHP倉庫中, 然後, 在你的PHP原始碼倉庫的Github頁面的右上角, 會有一個pull request按鈕. 點它.

提交的時候, 請注意你的提交說明的格式, 首先第一行應該是個簡短的說明(最多79個字元), 說明你做了什麼修改. 如果一句話說不完, 就插入一個空行, 然後輸入大段的說明(參看New Commit Message Format) :

如果你是修復了一個列在bugs.php.net上的bug, 那麼你的簡短說明應該類似如下格式:

5. 然後, 填寫相關的資訊, Github就會給PHP的pull request郵件組傳送一份包含著你的更新的Pull Request郵件(大家不用擔心你的英文, 只要你能說出來, 我們就能看懂, 當然, 如果你實在不願意寫英文, 也沒關係, 寫中文吧, 我看到了會處理, 我處理不了的, 我也會為大家翻譯).

6. 最後, 如果PHP的Committers們認為你的修復正確(有一些為PHP貢獻程式碼要注意的選項, 我留在下面). 就會Merge你的Pull Request到PHP的原始碼中.

現在, 假設你要提交的是, 一個更新(新增新函式, 新增新語法), 那麼在你提交了Pull Request的同時, 你還需要往internals@lists.php.net郵件組傳送一個郵件, 來說明你為什麼要提交這個更新, 讓在這個郵件組的人們一起來討論, 幫助你完善你的想法.

最後, 在你為PHP貢獻了一些更新以後(被Committer接受的更新), 那麼你就可以嘗試在: Register Svn Accout上來申請一個你自己的PHP Developer賬號了. :)

附錄:

為PHP貢獻原始碼有幾點要注意的(常見的問題):

1. 只寫C89相容的程式碼, 比如, 不要用單行註釋(//), 變數的定義一定要在所有語句之前(block的開始)..

2. 變數命名, 遵循PHP已有的規範, 不要使用駝峰命名.

3. 對於一些非常小的更新, 比如程式碼中有拼寫錯誤, 還是鼓勵大家到bugs.php.net上提交Patch, 畢竟Merge Pull Request有的時候會比較麻煩.

更多的PHP程式碼規範, 參看這裡: Submitting patch

相關文章