PHP的新生命:PHP基金會宣布成立

2022-01-26 21CTO

PHP 語言將有自己的基金,一個由多家公司和個人組成的非營利性組織,其任務是確保 PHP 的質量和未來,其中包括 JetBrains。


PHP 已經走過了 26 年,該語言得到了大量優秀技術大牛的積極開發,例如 Rasmus Lerdorf、Zeev Suraski、Andi Gutmans、Nikita Popov 和更多無法列舉的人。

2021 年11月20日,PHP 將迎來新一輪的進化。

Nikita Popov 的離開摧生基金會成立

PHP內核貢獻者Nikita將於12 月 1 日離開 JetBrains,並且花在 PHP 上的時間將大大減少,這對PHP社區來說是個莫大的損失。

Nikita 於 2011 年開始研究 PHP,當時他還在高中。他在 PHP 5.5 中做出了第一個貢獻。在他從事 PHP 的 10 多年中,Nikita 實現了無數功能、錯誤修復和語言的改進。

Nikita 在 JetBrains 公司從事 PHP 工作近3年,在此期間取得了極大成就和貢獻,包括三個主要版本——PHP 7.4、PHP 8.0 和 PHP 8.1。Nikita 長期以來一直是 Rust 和 LLVM 的貢獻者,因為生活壓力的 Nikita 將焦點會放在 LLVM 上。

失去 PHP 的主要貢獻者之一對社區來說是一個打擊,因為他是很多知識和專業的承載者。它使支持 78% 的網站開發語言處於脆弱的位置,還有很多維護者的沉重負擔,在 OSS 開源的世界中,這讓人們筋疲力盡。

2021 年 5 月,Joe Watkins 發表避免PHP失去主力的博客之後,社區開始討論成立 PHP 基金會的想法。Joe 與 PHP 社區的其他幾位成員進行了交流,其中包括 Sebastian Bergmann 和 Stefan Priebsch(PHPUnit,thePHP.cc),幾個人其實在2019年就嘗試成立一個基金會。

Perforce 旗下的 Zend 一直致力於 PHP 的研發,並為 PHP 語言貢獻了 20 多年的關鍵基礎與引擎,包括 PHP 5 對象模型、操作碼緩存、PHP 7 引擎和 JIT 編譯器。通過資助 PHP 項目的全兼職開發人員,Zend 確保了 PHP 語言的持續繁榮和現代化,使之能夠繼續用於關鍵任務應用的開發。

Nikita的離開有影響,但問題並不嚴重。然而他的決定迫使PHP社區在語言基礎建設上加緊工作。

PHP 基金會與成員

在與社區成員以及一些對 PHP 有既得利益的公司進行了多次討論和對話後,社區很高興地宣布以下公司將聯手組建 PHP 基金會:

Automattic、Laravel、Symfony、Acquia、Zend、Craft CMS、Private Packagist、Tideways 與 PrestaShop等。

PHP 基金會定位是一個非營利組織,其核心使命是確保 PHP 語言的長期發展與長期繁榮。

為了更快地開始運作,讓社區立即獲得基金會的益處,PHP社區決定委託 Open Collective 來執行:opencollective.com/phpfoundation。

Open Collective 是一家處理法律和會計方面的基金會服務提供商。Open Collective 受到許多開源項目的信任,包括Vue.js、Open Web Docs、webpack、Yii Framework等知名開源軟體。

PHP基金會已經收到參與公司的全部捐款,預計以後每年可籌集約 300,000 美元以上,其中 JetBrains 計劃每年捐款 100,000 美元。

社區希望通過基金會能夠向 PHP 核心開發者支付市場同一級別的薪水。得到捐贈的越多,就有越多的開發人員能夠全職開發 PHP。PHP社區歡迎更多贊助商支持 PHP 蓬勃發展。

基金會的管理

PHP社區將設立一個臨時管理機構,基金會成立並運行後,將決定常設管理機構的構成,包括基金會規約和章程的制定。

基金會臨時管理機構將包括贊助商代表和一批 PHP 研究員:Rasmus Lerdorf、Dmitry Stogov、Joe Watkins、Sara Golemon、Derick Rethans、Sebastian Bergmann和Nikita Popov。

基金會之活動

基金會籌集的資金用於參與 PHP 貢獻者的服務,以進一步推動PHP語言的發展,基金會的主要任務是資助開發者在PHP上的貢獻和相關工作。

基金會和任何從基金會獲得資金的人都必須遵守基金會的行為準則。

資助與相關選項

任何對PHP原始碼的貢獻者都可以向基金會申請資助。基金會將為兼職和全職開發人員提供資金,即使有其他收入來源也不妨礙與基金會籤訂合同。

申請期已經開始,將持續 28 天。表格申請地址:https://forms.gle/mk52v6FphaYr6yMS8。

臨時管理機構將一起利用他們的專業知識來決定誰應該獲得資金資助。

下一步是什麼

確定所選的開發人員後,臨時管理機構將與 PHP 社區成員的幫助下正式記錄工作流程。目前PHP的RFC進程不會改變,而語言內核的決定將留給PHP內部社區。

開發者可在opencollective.com/phpfoundation和@ThePHPF上關注PHP Foundation 的更新。

如何向PHP社區提供幫助

如果想幫助PHP基金會和 PHP 的開發,可以選擇如下選項:

1. 如果你已經是PHP核心開發者,可立即申請;

2. 在 opencollective.com/phpfoundation 網址向基金會捐款;

3. 如果你的公司也使用 PHP,請讓你的管理層了解支持 PHP 的機會;

4. 使用#ThePHPFoundation標籤並提及@ThePHPF在社交媒體上傳播信息。

相關問題

問:為什麼好的語言會發生不好的事情?

答:每個參與其中的人都會感受到失去語言的主要貢獻者。但是,PHP 會經久不衰,而基金會是確保這一點的最佳方式。每朵雲都有一隻銀象。

問:哪裡可以買到這種銀象?

答:待定🙂

問:我可以通過 GitHub 贊助商捐款嗎?

A:現在還沒有。我們計劃很快添加這樣的選項。

問:我可以申請多少資金?

答:您可以申請 20% 的兼職職位,或更多,直至全職職位。

問:基金會的運作範圍是什麼?

A:我們最初的運營範圍很窄,以便最大限度地成功解決緊迫問題——沒有足夠多的PHP核心開發人員在工作。

在頭一兩年,我們唯一的優先事項是招聘核心開發人員。在緊迫問題得到解決後,基金會將準備擴大運營範圍,以包括僱用致力於非核心項目的開發人員。除此之外,我們可能會擴大重點,以包括面向社區的項目。

問:基金董事會需要多長時間來正式制定運營程序?

答:基金會的目標是在 6 個月內將其運作程序正規化。

問:這和Rasmus’s的生日有關係嗎?

答:不,11 月 22 日的日期只是巧合,這也與 Nikita 的生日無關,他的是 11 月 23 日。

PHP 基金會的成立,特別感謝以下社區成員:

Joe Watkins、Stefan Priebsch、Sebastian Bergmann、Sara Golemon、Larry Garfield、Alexander Makarov、Nicolas Grekas、Ben Ramsey 等。

謝謝你們!

編譯:洛逸

來源:https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/

關於21CTO.com

21CTO.com是開發者的學習與服務平臺。

我們為開發者提供高質量的資訊、學習以及工具等產品;

幫助企業快速對接開發者,包括人才招聘,數位化轉型諮詢,軟體研發等服務。

網站地址:www.21cto.com

投稿郵箱:info@21cto.com

聯繫微信:13426109659

 掃描二維碼關注21CTO微信號

相關焦點

  • PHP基礎入門
    php$x=5;$y=6;//因為5大於6不成立,所以為錯的,即為false執行了假區間if($x > $y){    echo '變量x大於變量y 成立';}else{    echo '變量x大於變量y 不成立';}?
  • (基礎篇) PHP需要它—PHP擴展庫
    在編輯php.ini文件時,應注意以下幾點。þ 需要修改extension_dir設置使其指向用戶放置擴展庫的目錄或者放置php_*.dll文件的位置。例如: extension_dir = C:\php\extensions þ  要在php.ini文件中啟用某擴展庫,需要去掉extension=php_*.dll前的注釋符號,即將需要加載的擴展庫前的分號「;」刪除。
  • PHP基礎教程(2):PHP安裝
    您不需要編譯任何軟體,或安裝額外的工具 - 只要在您的 web 目錄中創建.php 文件即可 - 然後您的伺服器會為您解析這些文件。大多數主機都提供對 PHP 的支持。不過,如果您的伺服器不支持 PHP,那麼您必須安裝 PHP。
  • PHP 的奇技淫巧
    phpfunction compare(int $a, int $b): int{ return $a <=> $b;}Null 合併運算符<?php$filename = __DIR__ .
  • php語言是什麼?學好php需要掌握什麼?
    php的語法有C、Java和Perl的特點也有自創的特點,經過了24年的發展php從最初的1.0發展7.0版本,php的功能已經發展非常強大,php是適合編程零基礎入手的一門程式語言,下面為大家介紹一下學習php需要經過哪些過程?
  • Nginx + PHP(php-fpm)遇到的502 Bad Gateway錯誤
    先查看錯誤日誌,Nginx跟Apache不同之處在於PHP的腳本錯誤不會出在Nginx的log中,所以當出現502錯誤的時候,必須查看php-fpm的log,下一篇介紹如何調出php-fpm的具體錯誤log。
  • php語言入門教程(PHP編程學習路線圖)
    php語言入門應該從哪裡開始學起呢?是先學html還是php?還是直接學習PHP框架?
  • PHP配置文件詳解php.ini
    ; ; 所有在 php.ini-dist 文件裡設定的值與內建的默認值相同(這是說,如果 php.ini ; 沒被使用或者你刪掉了這些行,默認值與之相同)。= c:\php\ ; 存放可加載的擴充庫(模塊)的目錄 enable_dl = On ; 是否使dl()有效。
  • php學習之php的流程控制if和switch的使用
    php$con=mysql_connect('localhost','root','');if($con)(echo '連接成功';)?php $a=2;if($a==1):?><inputtype="text"><?php endif;?><!--用if else替代判斷是否顯示input輸入框--><?php $a=3;if($a==1):?><inputtype="text"><?php else:?
  • PHP偽協議的妙用
    php$file = $_GET["file"];include($file);?>在同目錄下有一個flag.php文件:<?php$flag = "flag{Lxxx}";想要讀取flag.php文件,可以利用filter偽協議,傳參如下:?
  • PHP基礎
    php foreach($article as $v){?> <li><?php echo $v['title'];?>--<?php echo $v['addtime'];?>--<?php echo $v['author'];?></li> <?php }?
  • phptrace —— 來自 360 的 PHP 執行流程跟蹤
    phptrace 是一個追蹤(trace)PHP執行流程的工具,你如果用過strace的話,則可能很容易想到phptrace到底實現了什麼樣的功能
  • PHP項目安全:使用PHP的訪問限制
    open_basedir=/home/web/php/; 限定PHP的訪問目錄為/home/web/php/為此選項設置一個值,需要注意的是,如果設置的值是一個指定的目錄,則需要在目錄最後加上一個「/」,否則會被認為是目錄的前綴。限制訪問示例如下。<?
  • php學習之php的預定義變量的使用
    說明:就是php系統內置的提供給使用的變量,這個變量一般都是超全局變量,超全局就是沒有作用域的限制有的還可以跨頁面$GLOBALS_SERVER_GET_POST_FILES_COOKIE_SESSION_REQUEST_ENV1.
  • 給PHP開發者講講PHP源碼(2)
    在函數頂部定義了各個變量,然後調用zend_parse_parameters函數,然後到了主要的邏輯,當中有RETURN_***和php_error_docref的調用。>這段代碼做的事情很明顯,如果offset超出了邊界,一個E_WARNING級別的錯誤會通過php_error_docref函數拋出,然後函數使用RETURN_FALSE宏返回false。
  • PHP基礎語法
    PHP 文件PHP 文件可包含文本、HTML、JavaScript代碼和 PHP 代碼PHP 代碼在伺服器上執行,結果以純 HTML 形式返回給瀏覽器PHP 文件的默認文件擴展名是 ".php"PHP知識點開始標記<?php和結束標記?>。開始標記和結束標記之間的內容作為PHP代碼解析和執行。
  • 怎麼理解php中的變量?php變量命名注意什麼?
    怎麼理解php中的變量?程序中的變量源於數學,在程序語言中能夠儲存結果或者表示抽象概念。簡單理解變量是臨時存儲值的容器,它可以儲存數字、文本、和一些複雜的數據(比如說字符串、複雜的排列組合等),變量在php語言中居於核心地位,是使用php的關鍵所在,變量的值在程序運行中會隨時發生變化,能夠把程序中準備使用的一段數據起一個簡短容易記得名字,另外它還可以保存用戶輸入數據和特點運算的結果,總結變量是變量是用於跟蹤幾乎所有類型信息的簡單工具。
  • PHP實例程序:用PHP製作登錄頁面程序
    php//這個腳本是用來給用戶輸入口令,並判斷口令是否正確的。//如果正確則轉到歡迎頁面。if ($login){    include("..php echo $PHP_SELF; ?php echo $user_login; ?
  • php反序列化
    session.serialize_handler存儲格式這裡主要是php_serialize和php兩種,默認是php設定一下session,然後去查看session文件常見於php腳本使用php_serialize,而php.ini默認使用php,比如下面這種情況。1.php<?
  • php學習之php的預定義常量的使用
    說明:常量一旦定義,裡面的值和常量是不能改變和銷毀的,而且常量名不能重複1.常量的定義:語法:define(常量名,常量值);不能定義複合數據5.xphp版本:const來定義複合的數據,如數組7.0 php版本:define可以定義複合的數據.如:define(ARR,[1,2,3,4,5