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

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

為什么用pHp開發大型系統感到不舒服?

來自:太平洋計算機網絡

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

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

1.對遞歸的支持不佳

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

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

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

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

3.由于商業原因,pHp不健全

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

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

4.沒有命名空間

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

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

5.非標準日期格式字符

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

6.許可證混亂

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

7.函數命名規則不一致

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

直接拼接:getnumberoffiles

下劃線分隔:get_number_of_files

駱駝法則:getNumberOfFiles

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

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

8.魔術引號的地獄

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

9.缺乏標準框架

一個沒有整體框架的成長中的網站最終將成為維護的噩夢??蚣芸梢允购芏喙ぷ髯兊萌菀住W钍軞g迎的框架模型是MVC模型,其中表示層,業務邏輯和數據庫訪問均分開。

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

摘要

出什么問題了?

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

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

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

文章標題:為什么pHp不適合于比小型業余網站更大的網站
文章出自:http://m.kartarina.com/news47/295047.html

成都網站建設公司_創新互聯,為您提供手機網站建設Google、網站設計、網站策劃ChatGPT、靜態網站

廣告

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

營銷型網站建設
主站蜘蛛池模板: 亚洲午夜无码久久久久软件 | 久久青青草原亚洲av无码| 人妻少妇精品无码专区二区| 亚洲精品无码一区二区| 无码A级毛片日韩精品| 亚洲av无码一区二区乱子伦as| 九九无码人妻一区二区三区| 一区二区三区无码视频免费福利| 亚洲AV无码片一区二区三区| 亚洲精品无码Av人在线观看国产| 成人免费无遮挡无码黄漫视频| 久久老子午夜精品无码| 日韩AV无码一区二区三区不卡毛片| 欲色aV无码一区二区人妻| 亚洲AV无码久久精品蜜桃| 亚洲国产精品无码久久九九 | 亚洲精品无码少妇30P| 东京无码熟妇人妻AV在线网址| 成人无码Av片在线观看| 无码夫の前で人妻を犯す中字| 无码国内精品人妻少妇蜜桃视频| 国产又爽又黄无码无遮挡在线观看 | 免费无码H肉动漫在线观看麻豆| 人妻av中文字幕无码专区| 亚洲爆乳无码专区www| 99精品国产在热久久无码| 人妻少妇伦在线无码专区视频| 亚洲精品无码永久在线观看你懂的| 精品无码中出一区二区| 国产高清不卡无码视频| 国产午夜鲁丝片AV无码| 无码国模国产在线无码精品国产自在久国产 | 无码人妻AⅤ一区二区三区| 国产AV无码专区亚洲精品| 国产色无码专区在线观看| 国产精品ⅴ无码大片在线看| 亚洲精品无码午夜福利中文字幕| 国产AV无码专区亚洲AV漫画| 一本色道无码道在线观看| 国产成人无码18禁午夜福利p| 性无码一区二区三区在线观看|