PHP框架互操作性小組(PHP-FIG)的未來:何去何從?
PHP框架互操作性小組(PHP-FIG)通過采納更多PHP標(biāo)準(zhǔn)建議(PSR)在吸引PHP的積極關(guān)注方面取得了顯著進(jìn)展。這些建議規(guī)范了編碼標(biāo)準(zhǔn)、樣式指南、自動(dòng)加載、日志記錄、緩存和HTTP消息。
然而,由于內(nèi)部糾紛以及知名項(xiàng)目和個(gè)人的退出,PHP-FIG的未來并不確定。該組織因官僚主義和負(fù)面氛圍加劇而受到批評(píng),阻礙了有效參與。
本文認(rèn)為,PHP-FIG應(yīng)該簡化其運(yùn)作,更加關(guān)注改進(jìn)PSR的溝通和討論。這可能包括讓非專家更容易參與,并減少PSR的審批時(shí)間。
作者認(rèn)為,PHP-FIG的未來取決于其能否重新關(guān)注其最初的互操作性目標(biāo)。這意味著減少對(duì)治理和管理的重視,更多地關(guān)注生成可互操作的代碼。
感謝Andrew Carter、Younes Rafie和Scott Molinari對(duì)本文的同行評(píng)審!
波蘭作家亨里克·顯克維支因其史詩小說《Quo Vadis》(拉丁語,意為“你去哪里?”)獲得了1905年諾貝爾文學(xué)獎(jiǎng)。面對(duì)任何困境,短暫的停頓和重新定義目標(biāo)都可能具有療效。
PHP-FIG已經(jīng)走向成熟。隨著更多PHP標(biāo)準(zhǔn)建議(PSR)的采納,PHP贏得了編程社區(qū)更多積極的關(guān)注和贊賞。 PSR規(guī)范了編碼標(biāo)準(zhǔn)、編碼樣式指南、自動(dòng)加載、日志記錄、緩存和HTTP消息。
其他處于不同草案和審查階段的提案涵蓋了超媒體鏈接、PHPDoc標(biāo)準(zhǔn)、事件管理、緩存和安全問題。甚至還有一個(gè)關(guān)于“可擁抱接口”(PSR-8)的提案,其中討論了可擁抱對(duì)象和相互保證的擁抱!
然而,未來并非一片光明,最近組織內(nèi)部的沖突使其持續(xù)存在受到質(zhì)疑。
起源
PHP-FIG的種子于2009年在php|tek會(huì)議上播下,當(dāng)時(shí)一些開發(fā)者聚在一起分享想法。這是出于對(duì)PHP社區(qū)內(nèi)部碎片化的擔(dān)憂,該社區(qū)聚集在不同的框架和應(yīng)用程序島嶼上。 FIG應(yīng)該是PHP的Java社區(qū)流程的等效物,一個(gè)開發(fā)Java標(biāo)準(zhǔn)技術(shù)規(guī)范的平臺(tái)。
他們的目的是創(chuàng)建一個(gè)論壇,用于討論P(yáng)HP項(xiàng)目面臨的共同問題,并通過合作尋找合作和互操作性的方法。他們希望更容易在不同項(xiàng)目之間共享完成的工作。
組織
參與就像訂閱Google群組郵件列表或加入IRC頻道一樣簡單。對(duì)審議進(jìn)行投票需要投票會(huì)員資格。
一般的行政職責(zé)由三位秘書執(zhí)行,他們每年在不同的月份當(dāng)選,任期兩年。組織日常運(yùn)作的細(xì)節(jié)可在PHP-FIG網(wǎng)站的章程部分找到。
成功之處
如上所述,PSR-4(自動(dòng)加載標(biāo)準(zhǔn))描述了從文件路徑自動(dòng)加載類的規(guī)范。它旨在完全互操作,并且可以用于補(bǔ)充任何現(xiàn)有的自動(dòng)加載規(guī)范,包括PSR-0(已棄用的自動(dòng)加載標(biāo)準(zhǔn))。此PSR還描述了根據(jù)規(guī)范自動(dòng)加載的文件位置。
使用Composer(PHP-FIG的投票成員),安裝和使用符合PSR-4的包非常簡單。像Carbon這樣的與框架無關(guān)的包可以毫無問題地放入任何符合PSR-4的應(yīng)用程序中。
同樣,PSR-7(HTTP消息)通過提出描述HTTP請(qǐng)求和響應(yīng)的規(guī)范,為互操作性打開了更廣闊的大門。PSR-13(HTTP中間件)將建立在PSR-7的基礎(chǔ)上,并進(jìn)一步推動(dòng)符合規(guī)范的框架和應(yīng)用程序之間的互操作性界限。
待定的PSR的可貴目標(biāo)可能無法實(shí)現(xiàn),因?yàn)樵摻M織的基礎(chǔ)本身正受到威脅。
爭議
當(dāng)前情況可以在郵件列表的這篇文章中總結(jié):“法律主義官僚主義的增加占據(jù)了主導(dǎo)地位,并且阻礙了該小組成立的良好工作。更直白地說,F(xiàn)IG在最近幾個(gè)月變得越來越具有毒性,使得有效參與幾乎不可能。”官僚主義。毒性。
郵件列表接收大量超出互操作性技術(shù)討論范圍的消息。以下是主題示例:“秘書利益沖突”、“秘書之間的和諧”、“驅(qū)逐投票的章程修正案”、“你怎么能容忍這個(gè)人?!”、“驅(qū)逐章程變更”、“請(qǐng)求投票驅(qū)逐xxxxxx”、“宣布xxxx會(huì)員資格無效”等等。
甚至還有一個(gè)最近的主題——FIG 3.0的替代方案——是時(shí)候宣布FIG完成了嗎?前提是,F(xiàn)IG已經(jīng)完成了它的工作,不需要FIG 3.0,所以讓我們解散PHP-FIG。FIG 3.0提案是對(duì)組織復(fù)雜章程、結(jié)構(gòu)和流程的改寫。一些人,包括關(guān)于解散該小組的帖子的作者,會(huì)認(rèn)為FIG 3.0試圖用更復(fù)雜的官僚主義來取代官僚主義。
Laravel、Doctrine、Propel、Guzzle、PHP League和Assetic等知名項(xiàng)目的退出以及個(gè)人的離開并沒有改善局面。驅(qū)逐三位秘書中的一位的嘗試在投票障礙中失敗了。也許是為了抗議,PHP社區(qū)驅(qū)動(dòng)的標(biāo)準(zhǔn)(PHP-CDS)成立了,它具有非常松散的結(jié)構(gòu)和較低的提案入門門檻。
據(jù)他們說:“PHP CDS不是一個(gè)群體或組織,它是一個(gè)概念。其核心思想是讓社區(qū)創(chuàng)建RFC,討論它們,然后對(duì)它們作為社區(qū)標(biāo)準(zhǔn)的接受進(jìn)行投票。”術(shù)語PHP社區(qū)標(biāo)準(zhǔn)(PCS)與Java社區(qū)流程(JCP)相呼應(yīng),但在首先建立組織時(shí),這可能只是對(duì)FIG內(nèi)部沖突的抗議。
和諧的未來
多年來,開源社區(qū)體現(xiàn)了善意和和諧,其模式贏得了銷售專有解決方案(通常是閉源的)公司的贊賞。
支持包括極其流行的Apache HTTP服務(wù)器在內(nèi)的廣泛項(xiàng)目的Apache軟件基金會(huì)仍然強(qiáng)大。Linux基金會(huì)為Linux內(nèi)核項(xiàng)目提供了一個(gè)家,這可能是世界上最大和最重要的開源項(xiàng)目。然后還有圍繞Symfony、Drupal、Composer、Guzzle等優(yōu)秀軟件聚集的強(qiáng)大社區(qū)。
也許是由公司實(shí)體開發(fā)或支持的項(xiàng)目做得很好。也許是由一個(gè)受人尊敬和欽佩的人物啟動(dòng)和領(lǐng)導(dǎo)的項(xiàng)目。
不和諧的音符
如果開源社區(qū)已經(jīng)看到了人類的最佳狀態(tài),那么它也看到了它公平份額的言語殘酷的攻擊和內(nèi)亂。人們經(jīng)常意見不合——鄰居并不總是意見一致。高速公路上的駕車者會(huì)找到一種方式來表達(dá)他們對(duì)彼此的不滿。這是作為群居動(dòng)物的生活事實(shí)。
Linus Torvalds無疑是一位天才,但你不會(huì)想把他列入外交官職位名單的首位。當(dāng)然不是一個(gè)顯然寫信給郵件列表的人,“我們可以擺脫腦損傷的愚蠢的網(wǎng)絡(luò)注釋語法風(fēng)格嗎,拜托?”或者,在另一條消息中,“好”的評(píng)論,例如,“我是一個(gè)混蛋。我完全不知道為什么人們會(huì)認(rèn)為我并非如此。然而他們確實(shí)如此。人們認(rèn)為我是一個(gè)好人,事實(shí)上我是一個(gè)陰險(xiǎn)狡詐的混蛋,如果這只是導(dǎo)致我所認(rèn)為的更好的系統(tǒng),我并不關(guān)心任何受傷的感情或失去的工作時(shí)間。我不是在開玩笑。我真的不是一個(gè)很好的人。我可以面不改色地說‘我不在乎’,并且真的這么認(rèn)為?!焙冒桑瑳]有人因?yàn)檫@些話或他對(duì)拉取請(qǐng)求的評(píng)論而感到如此惱火,以至于繼續(xù)分叉Linux內(nèi)核。
大約在2014年,Github遭受了它自己的地震,當(dāng)時(shí)一名女員工對(duì)辦公室的性別歧視、騷擾和恐嚇提出了一些說法。這個(gè)故事有多個(gè)方面,其中最重要的是一些女士在辦公時(shí)間隨著音樂 hula-hooping,而男性極客則在多任務(wù)處理——編碼并同時(shí)盯著舞者。除了輕浮之外,她聲稱:“我很難適應(yīng)這種文化,拉取請(qǐng)求上的攻擊性溝通以及我一起工作的男性如何不尊重和重視我的意見?!碑?dāng)她的“性格開始在不恰當(dāng)?shù)牡胤剑ㄈ缋≌?qǐng)求和問題上)被討論時(shí)”,她感到震驚。
Github的故事還有其他方面,但這表明,當(dāng)兩三個(gè)開發(fā)者在一起時(shí),他們的中間就會(huì)有分歧。不和諧是人類經(jīng)驗(yàn)的一部分。我們?nèi)绾翁幚韺?duì)周圍人的令人反感的看法,揭示了我們很多信息。
前進(jìn)的道路
PHP-FIG正處于內(nèi)爆的微妙道路上。自其出現(xiàn)以來,我們所目睹的良好之處是其持續(xù)存在的最有力論據(jù)。然而,用FIG 3.0偽裝的新官僚主義來取代所謂的破損的官僚主義的想法是基于存在良好官僚主義的前提。FIG網(wǎng)站上的章程頁面和投票流程過于復(fù)雜。如何簡化FIG的運(yùn)行?如何只關(guān)注互操作性而不關(guān)注實(shí)現(xiàn)細(xì)節(jié)?
前進(jìn)的道路可能在于更少的官僚主義,以及更多地關(guān)注如何改進(jìn)PSR的溝通和討論。也許它應(yīng)該讓“非專家”更容易參與到這個(gè)過程中,以促進(jìn)包容性?一些PSR在管道中存在了5年以上。真的需要這么長時(shí)間嗎?
欽佩Linus Torvalds作為一個(gè)人也好,不也好,讓我們停下來傾聽。他曾被引用說:“空談?wù)`事。給我看代碼?!绷硪粋€(gè)——“能做的,去做。不能做的,就抱怨?!蔽易霾坏剑也粫?huì)抱怨。在FIG中少說多做,更多可互操作的代碼,盡管概念的實(shí)現(xiàn)不同,未來越好。
關(guān)于PHP-FIG和Quo Vadis的常見問題解答(FAQ)
什么是PHP-FIG,為什么它很重要?
PHP框架互操作性小組(PHP-FIG)是一個(gè)協(xié)作項(xiàng)目,旨在標(biāo)準(zhǔn)化和簡化PHP開發(fā)者編寫代碼的方式。它之所以重要,是因?yàn)樗龠M(jìn)了最佳實(shí)踐,鼓勵(lì)代碼共享和重用,并提高了不同PHP框架之間的互操作性。通過遵循PHP-FIG標(biāo)準(zhǔn),開發(fā)者可以確保他們的代碼更易于維護(hù)、可擴(kuò)展和健壯。
在PHP-FIG的上下文中,“Quo Vadis”是什么意思?
“Quo Vadis”是一個(gè)拉丁語短語,翻譯成“你去哪里?”在PHP-FIG的上下文中,它指的是該小組的未來方向和發(fā)展。這是一個(gè)鼓勵(lì)反思該小組的目標(biāo)、戰(zhàn)略和進(jìn)展的問題。
PHP-FIG如何為PHP社區(qū)做出貢獻(xiàn)?
PHP-FIG通過創(chuàng)建和推廣稱為PSR(PHP標(biāo)準(zhǔn)建議)的標(biāo)準(zhǔn)來為PHP社區(qū)做出貢獻(xiàn)。這些標(biāo)準(zhǔn)為常見的編碼任務(wù)(例如編碼風(fēng)格、自動(dòng)加載和日志記錄)提供了指導(dǎo)。通過遵守這些標(biāo)準(zhǔn),開發(fā)者可以確保他們的代碼與其他符合PSR的代碼兼容,從而更容易協(xié)作和共享代碼。
對(duì)PHP-FIG的一些批評(píng)是什么?
一些批評(píng)者認(rèn)為,PHP-FIG的標(biāo)準(zhǔn)過于規(guī)范,限制了開發(fā)者的靈活性和創(chuàng)造力。其他人認(rèn)為,該小組的決策過程過于緩慢和官僚。然而,許多開發(fā)者贊賞PHP-FIG標(biāo)準(zhǔn)提供的穩(wěn)定性和互操作性。
我如何參與PHP-FIG?
任何人都可以通過參與該小組郵件列表上的討論或?yàn)槠湓贕itHub上的項(xiàng)目做出貢獻(xiàn)來參與PHP-FIG。您還可以通過在您自己的項(xiàng)目中推廣PHP-FIG的標(biāo)準(zhǔn)并鼓勵(lì)其他人這樣做來提供幫助。
“Quo Vadis”一詞在藝術(shù)和文學(xué)中的意義是什么?
“Quo Vadis”是一個(gè)已在各種藝術(shù)和文學(xué)形式中使用的短語,通常象征著決策或反思的時(shí)刻。這是一個(gè)強(qiáng)大的隱喻,可以應(yīng)用于許多不同的上下文,包括PHP-FIG的演變。
PHP-FIG如何決定新的標(biāo)準(zhǔn)?
PHP-FIG社區(qū)提出并討論新的標(biāo)準(zhǔn)。提案經(jīng)過嚴(yán)格的審查過程,包括投票階段,然后才能被接受為正式標(biāo)準(zhǔn)。
PHP-FIG的未來是什么?
PHP-FIG的未來取決于PHP社區(qū)的持續(xù)參與和貢獻(xiàn)。該小組正在不斷努力制定新的標(biāo)準(zhǔn)和倡議,以改進(jìn)PHP開發(fā)實(shí)踐。
PHP-FIG的工作如何影響日常PHP開發(fā)者?
PHP-FIG的標(biāo)準(zhǔn)可以使開發(fā)者更容易編寫、共享和維護(hù)他們的代碼。通過遵循這些標(biāo)準(zhǔn),開發(fā)者可以確保他們的代碼與各種框架和庫兼容,從而提高其實(shí)用性和壽命。
PHP-FIG標(biāo)準(zhǔn)的一些實(shí)際示例是什么?
許多流行的PHP框架和庫,如Laravel、Symfony和Zend,都遵守PHP-FIG的標(biāo)準(zhǔn)。這意味著為一個(gè)框架編寫的代碼通??梢耘c另一個(gè)框架一起使用,只需進(jìn)行最小的修改,從而使開發(fā)者更容易在框架之間切換或在項(xiàng)目中組合不同的技術(shù)。
以上是php-fig:你要去什么?的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次并在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助于避免錯(cuò)誤并提升代碼穩(wěn)定性。

要安全處理PHP文件上傳需驗(yàn)證來源與類型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來源通過token防止CSRF并通過finfo_file檢測真實(shí)MIME類型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測類型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫重新保存圖片清除潛在惡意數(shù)據(jù)。

PHP注釋代碼常用方法有三種:1.單行注釋用//或#屏蔽一行代碼,推薦使用//;2.多行注釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧注釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

寫好PHP注釋的關(guān)鍵在于明確目的與規(guī)范,注釋應(yīng)解釋“為什么”而非“做了什么”,避免冗余或過于簡單。1.使用統(tǒng)一格式,如docblock(/*/)用于類、方法說明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背后的原因,如說明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問題,便于后續(xù)追蹤與協(xié)作。好的注釋能降低溝通成本,提升代碼維護(hù)效率。

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

在PHP中獲取字符串特定索引字符可用方括號(hào)或花括號(hào),但推薦方括號(hào);索引從0開始,超出范圍訪問返回空值,不可賦值;處理多字節(jié)字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結(jié)果;實(shí)際應(yīng)用中循環(huán)訪問前應(yīng)檢查字符串長度,動(dòng)態(tài)字符串需驗(yàn)證有效性,多語言項(xiàng)目建議統(tǒng)一使用多字節(jié)安全函數(shù)。

易于效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)
