當前位置:編程學習大全網 - 編程語言 - 為什麽說PHP是首選的Web開發語言

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

作者:2gua

鏈接:/p/19904737

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

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

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

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

<?php

header("HTTP/1.1 404 Not Found");

include("404.html");

exit;

>

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="utf-8">

</head>

<body>

<p>404頁面。</p>

</body>

</html>

再看看如http://ASP.NET MVC中的實現:

public ActionResult Details(int id)

{

return HttpNotFound();

}

雖然封裝得很好,但是,跟PHP方式比較就知道,http://ASP.NET MVC中的實現確實比較抽象不夠直觀,而且是在控制器裏直接定義和跳轉的。在PHP中,顯而易見,壹下就明白了代碼中header的含義:HTTP-Version、Status-Code、Reason-Phrase。

順帶說說Rails中的處理方式,抽象程度也很高:

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

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

4. 不得不提Node.js,Node.js是目前很火的技術,號稱“全棧”的希望所在,常拿來跟PHP爭論比較:什麽並發、線程、進程等等。在這裏無意評論孰優孰劣,但至少PHP可以讓妳多掌握壹門技術,而不止是JavaScript。此外,PHP的大型業務的成熟應用案例可是比比皆是吖。

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

6. PHP的資料非常豐富。

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

  • 上一篇:什麽是遞歸和遞歸方法?
  • 下一篇:現代煉鋼工藝流程是什麽
  • copyright 2024編程學習大全網