程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何為PHP貢獻你的源代碼

如何為PHP貢獻你的源代碼

編輯:關於PHP編程

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了.

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

ssh  [email protected]:laruence/php-src.git

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

$git clone [email protected]:laruence/php-src.git

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

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

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

<max 79 characters short description>\n
\n
<long description, 79 chars per line>
\n

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

Fixed Bug #bug號 (Bug的描述)

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

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

現在, 假設你要提交的是, 一個更新(添加新函數, 添加新語法), 那麼在你提交了Pull Request的同時, 你還需要往[email protected]郵件組發送一個郵件, 來說明你為什麼要提交這個更新, 讓在這個郵件組的人們一起來討論, 幫助你完善你的想法.

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

附錄:

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

  1. 只寫C89兼容的代碼, 比如, 不要用單行注釋(//), 變量的定義一定要在所有語句之前(block的開始)..
  2. 變量命名, 遵循PHP已有的規范, 不要使用駝峰命名.
  3. 對於一些非常小的更新, 比如代碼中有拼寫錯誤, 還是鼓勵大家到bugs.php.net上提交Patch, 畢竟Merge Pull Request有的時候會比較麻煩.

更多的PHP代碼規范, 參看這裡: Submitting patch

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved