貢獻給 PHP 核心
PHP 是一個開源專案,因此,任何人都可以為它做出貢獻。從廣義上講,有兩種方法可以為 PHP 核心做出貢獻:
- 漏洞修復
- 功能增加
但是,在做出貢獻之前,瞭解如何管理和釋出 PHP 版本非常重要,以便錯誤修復和功能請求可以針對正確的 PHP 版本。開發的更改可以作為拉取請求提交給 PHP Github 儲存庫 。有關開發人員的有用資訊,請訪問 PHP.net 站點的 Get Involved
部分和 #externals 論壇 。
有助於修復 Bug
對於那些希望開始為核心做貢獻的人來說,通常更容易從錯誤修復開始。在嘗試對功能所需的核心進行更復雜的修改之前,這有助於熟悉 PHP 的內部。
關於版本管理過程,錯誤修復應該針對受影響最小的,同時仍然支援 PHP 版本。這個版本是修復拉取請求應該定位的 bug。從那裡,內部成員可以將修復程式合併到正確的分支中,然後根據需要將其合併到以後的 PHP 版本中。
對於那些希望開始解決錯誤的人,可以在 bugs.php.net 上找到錯誤報告列表。
促進功能增加
PHP 在引入新功能和對語言進行重要更改時遵循 RFC 流程。RFC 由 php.net 成員投票,並且必須達到總票數的簡單多數(50%+ 1)或超多數(2/3 + 1)。如果更改影響語言本身(例如引入新語法),則需要超級多數,否則只需要簡單多數。
在 RFC 可以投票之前,他們必須在官方 PHP 郵件列表上進行至少 2 周的討論。一旦這段時間結束,並且 RFC 沒有公開的問題,它就可以進入投票,投票必須持續至少 1 周。
如果使用者想要恢復先前被拒絕的 RFC,那麼他們只能在以下兩種情況之一下執行此操作:
- 從之前的投票開始已經過去了 6 個月
- 如果 RFC 再次投票,作者對 RFC 進行了足夠大的修改,這可能會影響投票結果。
有權投票的人要麼是 PHP 本身的貢獻者(也是 php.net 帳戶的貢獻者),要麼是 PHP 社群的代表。這些代表是由那些擁有 php.net 帳戶的人選擇的,他們要麼是基於 PHP 的專案的主要開發者,要麼是常規參與者進行內部討論。
在提交提案的新想法時,提議者幾乎總是需要編寫至少一個概念驗證補丁。這是因為沒有實現,該建議只是成為另一個不太可能在不久的將來實現的功能請求。
有關此過程的詳細說明,請參閱官方如何建立 RFC 頁面。
釋出
主要的 PHP 版本沒有固定的釋出週期,因此它們可能由內部團隊自行決定釋出(只要他們認為適合新的主要版本)。另一方面,次要版本每年釋出。
在每次釋出 PHP(主要,次要或補丁)之前,都會提供一系列候選釋出版(RCs)。PHP 不像其他專案那樣使用 RC(即如果 RC 沒有發現問題,那麼將其作為下一個最終版本)。相反,它將它們用作最終測試版的一種形式,其中通常在最終版本釋出之前確定一定數量的 RC。
版本
PHP 通常會嘗試在可能的情況下遵循語義版本控制。因此,應該在語言的次要版本和補丁版本中維護向後相容性(BC)。保留 BC 的功能和更改應針對次要版本(不是修補程式版本)。如果某個功能或更改有可能破壞 BC,那麼它們的目標應該是針對下一個主要的 PHP 版本( X .yz)。
每一個微小的 PHP 版本(X。 Ÿ .Z)已連續兩年的普遍支援(所謂的積極支援)對所有型別的 bug 修復。除此之外還增加了一年的安全支援,其中僅應用了與安全相關的修復。三年後,對該版本的 PHP 的支援完全被刪除。可以在 php.net 上找到當前支援的 PHP 版本列表。