為什麼說PHP是首選的Web開發語言? - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >

為什麼說PHP是首選的Web開發語言?

發表時間:2015-4-15

發布人:葵宇科技

浏覽次數:33

為什麼說PHP是首選的Web開發語言?

更好排版:https://zybuluo.com/phper/note/86933


轉發自2gua大神的知乎專欄:http://zhuanlan.zhihu.com/guagua/19904737


不知何時開始,程序員把一緻的調侃送給了PHP,“尊稱”其為“神語言”,并且PHP總被冠以“代碼淩亂”、“漏洞不少(shǎo)”的不良名稱。在我所接觸的Web開發技術(shù)如(rú):Rails、ASP.NET MVC、Java Web、Django、Sinatra以及PHP中(zhōng),PHP應該是首選Web開發語言。請注意,這裡的“首選”不是“最好”的意思,而是開發工具棧學習選型過程應該優先考慮的技術(shù)。

為什麼這麼說呢(ne)?理由一下(xià)子(zǐ)在腦袋裡冒出了好多條,姑且梳理下(xià)吧:

1. PHP是為Web而生的,天然與HTML、JavaScript有親近感,也就是原生味兒十足。即使是PHP與HTML代碼混雜,從某種角度而言,也能幫助初學者直觀地了解Web技術(shù)機理,壞事有時候也是好事。另一方面,開源PHP的C風格、Unix/Linux範兒讓其在Apache、Nginx等Web應用服務器(qì)上表現優異。總之,PHP與Web是渾然天成的結合方式。

2. 要掌握PHP,我建議從備受诟病的“代碼淩亂”編程風格 -- 或許是從PHP與HTML混合編程開始,待直觀了解Web開發技術(shù)之後,再考慮代碼組織和(hé)結構的重構,這樣有助于自己以更加原生的方式掌握Web的秘密。那麼,什麼是更加原生的方式呢(ne)?随手舉個(gè)例子(zǐ):典型的404狀态碼。

用PHP的實現(404.php、404.html):

 
  1. <?php
  2. header("HTTP/1.1 404 Not Found");
  3. include("404.html");
  4. exit;
  5. ?>
 
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <p>404頁面。</p>
  8. </body>
  9. </html>

再看看如(rú)ASP.NET MVC中(zhōng)的實現:

 
  1. public ActionResult Details(int id)
  2. {
  3. return HttpNotFound();
  4. }

雖然封裝得很好,但是,跟PHP方式比較就知道,http://ASP.NET MVC中(zhōng)的實現确實比較抽象不夠直觀,而且是在控制器(qì)裡直接定義和(hé)跳轉的。在PHP中(zhōng),顯而易見,一下(xià)就明白了代碼中(zhōng)header的含義:HTTP-VersionStatus-CodeReason-Phrase

順帶說說Rails中(zhōng)的處理方式,抽象程度也很高:

 
  1. render :template => '......', :status => 404

3. 與PHP類似的還有JSP,但JSP往往需要與JEE其他技術(shù)模塊相配合使用,體系足夠龐大,需要有長期準備。其他如(rú)ASP.NET MVC、Rails等框架的抽象度較高,也不建議作為首選。

4. 不得不提Node.js,Node.js是目前很火的技術(shù),号稱“全棧”的希望所在,常拿來跟PHP争論比較:什麼并發、線程、進程等等。在這裡無意評論孰優孰劣,但至少(shǎo)PHP可(kě)以讓你(nǐ)多掌握一門技術(shù),而不止是JavaScript。此外,PHP的大型業(yè)務的成熟應用案例可(kě)是比比皆是吖。

5. 那麼,是不是該一直堅持指哪打哪的“代碼淩亂”方式呢(ne)?當然不應該。PHP提供的OOP特性足夠強大,在技能與理解程度達到一定高度時,完全可(kě)以以OOP的方式來組織代碼。在PHP領域,各種框架非常多,比如(rú)Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,屆時随便選一個(gè)都可(kě)以進行規範化開發。“代碼淩亂”關(guān)鍵不在于工具本身,而在于人自己!要知道用Java也能寫出爛代碼。

6. PHP的資(zī)料非常豐富。

7. 最後,有一個(gè)稍稍題外話的看法,早前我還覺得在RESTful方式不斷普及下(xià),由于RESTful Web Services使用标準的 HTTP 方法(GET/PUT/POST/DELETE)來抽象Web服務能力,服務端的重點将移至MC,而服務端視圖模版的應用會減少(shǎo),客戶端的支撐需求會越來越多。比如(rú)各種前端庫、框架将得到快速推進,越來越多的需求處理會前置到前端來處理。但現在我感覺這種狀态考慮得太過理想了,就像數據頻繁大量更疊及處理的場景,更适合服務端(如(rú)模版引擎)完成;再具體地,又如(rú)大數據量的分頁,如(rú)果都在浏覽器(qì)中(zhōng)實現,性能就一定會有很大問(wèn)題。此外,頻繁Ajax調用、客戶端緩存機制的缺失,也将引起種種問(wèn)題,再進一步來看,單頁面應用(SPA)也就并非适合每一個(gè)業(yè)務場景,服務端視圖模版還是有比較多的适用領域的。

相關(guān)案例查看更多