iT邦幫忙

0

PHP 好像很流行是嗎 ?

現在好像寫網頁都用 PHP , 他的優點是什麼 , 為什麼大家都用呢 ?

16
逮丸逮丸
iT邦大師 1 級 ‧ 2010-08-12 08:07:50
最佳解答

對於入門者,
要做一個會動的車子,
PHP反而是個需要從頭造輪子開始。
以做一個簡單的部落格為例,
PHP 要花的工實在很大,
要搞清楚怎麼抓變數、存取資料庫,
就要搞一段時間;
等於是要 從下往上 的路徑才能做個能動的成品。

參考一下 Ruby on Rails 簡稱 RoR,
當初是看到這 Creating a weblog in 15 minutes with Rails 2 (完整50MB mov檔)
15分鐘做一個部落格的示範,
讓我好羨慕而開始學 RoR,而可以很快地脫離 新手、入門 的階段,
而 PHP 常常要什麼都搞清楚,才有辦法做到下面一個簡單而完整可用的功能。
第一段:
<object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/tUH1hewXnC0&hl=zh_TW&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/tUH1hewXnC0&hl=zh_TW&fs=1" type="application/x-shockwave-flash" width="480"></embed></object>
第二段:
<object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/zG_mvp8u4cI&hl=zh_TW&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/zG_mvp8u4cI&hl=zh_TW&fs=1" type="application/x-shockwave-flash" width="480"></embed></object>
學 RoR 是 從上到下 的模式進行,
是因為把許多的動作包好了,
RoR 是 Ruby 程式語言的 Framework,
我也是在不懂什麼是 Ruby 語法的情況下就用了 RoR,
通常是為了想要修改成自己想要的功能,
才慢慢地了解 Ruby 的語法為何。
相信學 RoR 跟學 PHP 同時進行的話,
可以比較一下,
哪個較容易看出學習或可立即應用的效果。

在 Linux 上兩者都很容易裝。
在 Windows 上,兩者也都有安裝包。

PHP 是專為做網頁設計的語言,
要用在其他的非網頁環境上,
雖然可以,但有點不倫不類。
RoR 是 Web 的 Framework,
但 其基礎是 Ruby 程式語言,
對初學者是相當容易入門,
要用在非 Web 的環境上也適宜。

書店也已有一些 RoR 的相關書籍,
隨便一翻 RoR 的內容,
很快就進入怎麼調整已做好網站雛型的細節微調。
而 PHP 的書,
可能翻到一半,都還在介紹PHP的語法…

為什麼使用 PHP 的數量那麼高?
PHP 生於 1995
Ruby 生於 1993,但沒什麼好的應用,
直到 RoR 生於 2005 且紅起來,
才讓人見到 Ruby 的好處…
歷史的因素,再加上
初學者通常是「西瓜偎大邊」的方式做選擇,
所以 PHP 的佔有率是高的…
如果對程式而言,不是初學者的話,
可能會覺得 PHP 才叫程式語言,
從輪子開始做起,才叫寫程式。
如果是 程式初學者的話,
RoR、Ruby是可較快看到學習成效的。

tony1978 iT邦新手 5 級 ‧ 2010-08-12 09:01:23 檢舉

1.要部落格的話也不用ror,用wordpress就好了
2.ruby不普及的原因之一就是他是物件導向程式,物件導向本來就有學習曲線陡峭的問題
3.拿ror這種framework去比php,根本是奇怪的行為,要比也是ruby跟php,ror跟zend framework,更何況寫一句hello world時誰比較快呢?php只要一行,ror還要透過mvc,誰比較快?php被開玩笑說成是21世紀的vb也不是沒有道理的,因為他真的ror簡單太多了,不過也因為這太簡單所以本身也很多缺陷

這是篇舊文:
PHP vs Java vs Ruby
對此三語言的比較:

可參考一下;
應該有較新的文做不同程式語言的比較。
之前也曾看過幾種程式語言的語法比較的文章,
一時找不到,也是不錯的參考。

這是一篇 java 和 ruby 語法的比較:
Sometimes less is more

14
shunyuan
iT邦研究生 1 級 ‧ 2010-08-11 23:54:46

PHP 的語法跟 C 非常相似,可以用來產生網頁,同時有很方便的介面存取資料庫,特別是 MySQL。

很多的 WEB 2.0 網站都是用 PHP 寫的,例如 Face Book。

教學的書,現成的範例,及其他相關資源很多。

是一個容易上手,已經證明十分有用的語言。

看更多先前的回應...收起先前的回應...
shunyuan iT邦研究生 1 級 ‧ 2010-08-11 23:59:16 檢舉

不過建議 tony 大先孰悉 MS PowerScript 或是 Linux Shell script。

當成對程式語言的入門。

shunyuan iT邦研究生 1 級 ‧ 2010-08-12 00:06:54 檢舉

忘了講,PHP 要裝在 WEB server 例如 Apache 上。

wordsmith iT邦高手 1 級 ‧ 2010-08-12 13:03:48 檢舉

PHP當作是程式語言的入門應該也很合適吧

shunyuan iT邦研究生 1 級 ‧ 2010-08-12 13:13:48 檢舉

wordsmith提到:
PHP當作是程式語言的入門應該也很合適吧

看人吧,要我推薦,我推薦 C 語言。

wordsmith iT邦高手 1 級 ‧ 2010-08-12 13:35:13 檢舉

C語言本來就是最傳統的入門語言吧。

shunyuan iT邦研究生 1 級 ‧ 2010-08-12 14:49:39 檢舉

wordsmith提到:
C語言本來就是最傳統的入門語言吧。

  • 1

唉!
就我而言,我對C一直都還是入門的階段…Orz

10
doesjudas
iT邦新手 2 級 ‧ 2010-08-12 11:09:25

PHP 是個簡單又好學的語言.
很流行是因為有太多 免費完整的模組 可以使用, 如: joomla, xoops...

從無到有要寫出一套作品, 不單是PHP不容易做到, 很多語言也很難做到.
若要說PHP不好的原因, 那就是沒有方便簡單的工具, 不像 VB,.NET 那樣有圖形拉拉設訂地開發工具.

15
wordsmith
iT邦高手 1 級 ‧ 2010-08-12 13:00:44

PHP已經流行有超過10年了吧。

我覺得PHP之所以盛行,是因為簡單又免費。要拿Java、C或是Perl來寫Web,難度都比PHP高。然後PHP的社群很活躍,很多Library也都是免費可用,讓開發人員可以省下不少力氣。

不過PHP的好用,也造成了許多亂象,很多人看著書上的範例程式就寫出網站了,卻沒有進一步深入研究,後果就是網站不安全、不穩定。

要說流行,這幾年後來居上的應該是Python和Ruby。而且這兩個程式語言的性格截然不同,Python嚴謹到像一絲不苟的神職人員,Ruby則是像享樂至上吟遊歌手。或者用希臘神話來比喻,就是太陽神阿波羅和酒神戴奧尼索斯的差別啊。

這兩個語言雖然也都行之有年,不過一個是因為Google的加持,一個是因為RoR爆紅,讓他們在Web上異軍突起,也各自有其擁戴者。

其實說到最後,只要是用得上的語言,都是好的語言,而流不流行其實和語言本身無關,而是某個時間點,哪個程式語言的需求度比較高而已。

但是PHP,仍然以簡單好用繼續迎擊這些後來者的挑戰,而且與時俱進。除了本身語言不斷加入新的概念和語言,像是在PHP 5之後大刀闊斧引進的物件導向觀念。另外,在後進者的刺激下,它也不斷衍生出各種框架,像是CakePHP可說是RoR的Clone版本。

所以學PHP,雖然沒那麼時髦,不過可說是好用瑞士刀一把啊。

PS.不過我也很愛RoR這個框架就是了。

10
灌籃高手
iT邦高手 1 級 ‧ 2010-08-12 14:01:57

黑貓白貓,會抓老鼠就是好貓!PHP除了寫網頁程式,也可以拿來寫一些script,這對網站維護來說很方便

16
fillano
iT邦超人 1 級 ‧ 2010-08-12 15:10:32

雖然不太精通,我也差不多接觸了十年。

會流行起來,我想主要還是進入門檻低...不過PHP5之前,其實他的物件導向機制不太完整。從今日來看這個語言的話,可以把他分成:php4及更早,php5,php5.3三個發展過程。PHP6並沒有出爐,所以如果你看到坊間有PHP6的書,那就是lag了。

PHP目前有許多成熟的framework,如果你熟悉了PHP,那一定要進一步看看這些東西:

  1. 精簡快速:CodeIgniter
  2. ROR like:CakePHP, Symfony
  3. 元件導向:Yii, Prado
  4. 大型:ZendFramework(2.0的開發者測試m1剛出來)

PHP也有一些ORM的解決方案:

  1. Doctrine
  2. Propel

PHP有一些不錯的樣板引擎,例如Smarty。

他有一個不錯的測試框架:PHPUnit,配合xdebug,他可以做出在JUnit上可能需要搭配好幾套測試工具才能做出來的檢測。你可以利用他來做單元測試、檢測測試覆蓋率、檢查coding style等等。你可以用stub或是mock object來做測試,也可以從單元測試產生程式碼(如果你有在做TDD)。目前也有一些持續整合工具可以搭配,例如phpUnderControl,可以與CruiseControl整合。

他有一個不錯的套件管理工具PEAR。

他有一個文件工具phpdocumentor,可以像JavaDoc一樣從程式註解產生文件。

其他一般的library我就不多說。

另外,PHP的Extension架構還蠻簡單的,所以很容易就可以寫出extension來把第三方的library包進來,擴充他的功能。我想這也是PHP會「紅」的重要因素。

PHP的發展一直是非常開放的,社群廣大,貢獻者也很多,所以很自由也很雜亂。對於這些,有人喜歡,也有人討厭。不過我是覺得跟目前如火如荼發展的Javascript比較起來,他的執行效率需要趕上。(當然也許他天生不適合遞迴...之前跑一個遞迴的測試,他的執行效率遠低於V8或是SpiderMonkey)而為了執行效率,有人等不及下一代的Zend Engine了...Facebook的團隊就搞了一個東西叫做hiphop,可以把php編譯成包含伺服器與各種需要library的單一執行檔(只能在64位元的linux底下跑),他的作法是把php的原始碼翻譯成C++...然後來編譯...

Java支援scripting技術,所以也有人開發用java來跑php的技術,例如quercus,他是resin伺服器的一個子計畫。另外,Android的應用軟體主要也是用Java來開發,也有人...寫了可以在Android上面跑php的東西...http://www.phpforandroid.net/

fillano iT邦超人 1 級 ‧ 2010-08-12 15:58:51 檢舉

用的人多,入門容易,其實也有很大的缺點...像我現在努力要廠商完工的東西,就是用PHP開發...

只能說,用的人多,精的人少,所以特別把這些東西挑出來,希望大家可以深入研究XD

另外,希望:Jace Ju可以出新書,他在深入研究很多有去的東西喜歡

fillano iT邦超人 1 級 ‧ 2010-08-12 16:00:35 檢舉

「有趣」,不是「有去」。新酷音老是出錯...Jserv沒在開發以後,現在好像沒啥進度...

wordsmith iT邦高手 1 級 ‧ 2010-08-13 11:00:52 檢舉

fillano提到:
另外,希望:Jace Ju可以出新書,他在深入研究很多有趣的東西

嗯出新書+1

我要發表回答

立即登入回答