為什么pHp不適合于比小型業(yè)余網站更大的網站

2023-11-17    分類: 網站建設

為什么用pHp開發(fā)大型系統(tǒng)感到不舒服?

來自:太平洋計算機網絡

在過去的四年中,作者一直致力于pHp應用程序的開發(fā)。 pHp確實很容易編寫。但是pHp也有一些非常嚴重的缺陷。

以下作者將給出我自己的理由,為什么pHp不適合于比小型業(yè)余網站大的網站。

1.對遞歸的支持不佳

遞歸是一種函數(shù)調用自身的機制。這是一項強大的功能,可以使某些復雜的事情變得非常簡單。使用遞歸的一個示例是quicksort(quicksort)。不幸的是,pHp不擅長遞歸。 pHp開發(fā)人員Zeev說:“ pHp4.0(Zend)使用堆棧方法處理密集數(shù)據(jù),而不是使用堆方法。也就是說,與之相比,它可以容忍的遞歸函數(shù)數(shù)量有明顯的限制。其他語言。更少?!闭垍⒁婂e誤1901。這是一個非常不好的借口。每種編程語言都應提供良好的遞歸支持。

2.許多pHp模塊不是線程安全的

幾年前,Apache發(fā)布了Web服務器的2.版本0。該版本支持多線程模式,在這種模式下,軟件的一部分可以同時運行多個。 pHp的發(fā)明者說,pHp的核心是線程安全的,但非核心模塊不是必需的。但是,十分之九,您想在pHp腳本中使用此模塊,但這使您的腳本不適用于Apache的多線程模式。這就是為什么pHp團隊不建議在Apache 2的多線程模式下運行pHp的原因。糟糕的多線程模式支持使pHp經常被認為是Apache 2仍然不受歡迎的原因之一。

請閱讀以下討論:Slashdot:網站拒絕Apache 2嗎?。

3.由于商業(yè)原因,pHp不健全

通過使用緩存,pHp的性能可以顯著提高500%[請參閱基準測試]。那么為什么緩存沒有內置在pHp中呢?由于pHp的制造商Zend正在出售自己的Zend Accelerator,因此,他們當然不想放棄他們的商業(yè)產品。

但是還有另一種選擇:ApC。 (Zend后來推出了Zend Optimizer,這是一個免費的加速器-翻譯器)

4.沒有命名空間

想象一下有人制作了一個pHp模塊來讀取文件。模塊中的功能稱為讀取。然后,另一個人的模塊可以讀取網頁,該網頁還包含讀取的功能。然后,我們不能同時使用這兩個模塊,因為pHp不知道您要使用哪個功能。

但是有一個非常簡單的解決方案,那就是名稱空間。曾經有人建議將此功能添加到pHp5中,但不幸的是他沒有這樣做。現(xiàn)在,沒有名稱空間,并且每個函數(shù)都必須以模塊名稱作為前綴,以避免名稱沖突。這使函數(shù)名稱非常長,例如,xsl_xsltprocessor_transform_to_xml使得代碼難以編寫和理解。

5.非標準日期格式字符

許多程序員熟悉從UNIX和C語言派生的日期格式字符。其他一些編程語言也采用了此標準,但奇怪的是,pHp具有自己的一組完全不兼容的日期格式字符。在C中,“%j”表示一年中的某天,而在pHp中,其表示每月中的某天。但是,要使情況更加混亂:Smarty(一種流行的pHp模板引擎)的strftime函數(shù)和date_format函數(shù)使用C / UNIX格式字符。

6.許可證混亂

您可能會認為pHp是免費的,并且手冊中提到的所有pHp模塊也是免費的。錯誤!例如,如果您想用pHp生成pDF文件,您將在手冊中找到兩個模塊:pDF和ClibpDF。但是這兩個都有商業(yè)許可證。因此,對于您使用的每個模塊,必須確保您同意他的許可。

7.函數(shù)命名規(guī)則不一致

某些函數(shù)名稱由多個單詞組成。通常有三種詞組合:

直接拼接:getnumberoffiles

下劃線分隔:get_number_of_files

駱駝法則:getNumberOfFiles

大多數(shù)語言選擇其中一種。但是使用pHp。

例如,如果要將某些特殊字符轉換為HTML實體,則將使用htmlentities函數(shù)(直接拼接詞)。如果要使用相反的功能,則必須使用其小兄弟html_entity_decode。由于某些特殊原因,函數(shù)名稱由下劃線分隔。怎么會這樣?您知道有一個名為strpad的函數(shù)。還是他是str_pad?每次您必須檢查該符號是什么時,或者等待他犯錯。函數(shù)不區(qū)分大小寫,因此pHp的rawurldecode和RawUrlDecode之間沒有區(qū)別。這也很糟糕,因為兩者都被使用并且外觀不同php開發(fā)是什么,這會使讀者感到困惑。

8.魔術引號的地獄

魔術引號可以保護pHp腳本免受SQL注入攻擊。很好但是由于某些原因,您可以在php.ini中關閉此配置。因此,如果要編寫靈活的腳本php開發(fā)是什么,則始終必須檢查魔術參考是打開還是關閉。這樣的“功能”應該使編程更容易,但實際上它變得更加復雜。

9.缺乏標準框架

一個沒有整體框架的成長中的網站最終將成為維護的噩夢。框架可以使很多工作變得容易。最受歡迎的框架模型是MVC模型,其中表示層,業(yè)務邏輯和數(shù)據(jù)庫訪問均分開。

許多pHp網站都不使用MVC模型。他們甚至沒有框架。即使現(xiàn)在有一些pHp框架,您也可以自己編寫。有關pHp的文章和手冊并未改進該框架。同時,JSp開發(fā)人員使用Struts等框架,而ASp開發(fā)人員使用.Net。這些概念似乎已被pHp開發(fā)人員廣泛理解。這說明了pHp實際上是多么專業(yè)。

摘要

出什么問題了?

對于非常小的項目,它可能是一種非常令人滿意的編程語言。但是對于更大,更復雜的項目,pHp表現(xiàn)出了它的弱點。繼續(xù)探索之后,您將找到作者提到的一些問題的解決方案。因此,當解決方案已知時,為什么不能更正呢?另外,為什么手冊中未提及這些修復程序?

開源語言非常流行是一件好事。不幸的是,這不是一門好語言。作者希望所有問題都能在一天之內解決(也許在pHp6中?),然后我們將擁有一種既開源又易于使用的開源語言。

到目前為止,當您要啟動一個包含5個以上腳本頁面的項目時,最好考慮使用C#/ ASp.Net或Java / JSp,或者也許python也是更好的選擇。

文章標題:為什么pHp不適合于比小型業(yè)余網站更大的網站
文章出自:http://www.muchs.cn/news47/295047.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供手機網站建設、Google、網站設計網站策劃、ChatGPT、靜態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網站建設