首先學長當然就是先簡述一下PHP的歷史,其中也有提到因為 PHP 是根據 C 和 Perl 這兩種語言演化而來的,所以在語法上都可以看到這兩種語言的影子。不過也因為如此,學長認為這使得 PHP 的語法頗為醜陋 = =
接下來學長開始介紹 PHP 版本的演進,也順便婊了一堆 PHP 有的毛病,像是內建 Web server 的功能 (太晚加入這個功能了) ,或是一些物件導向的功能 (後面的版本在支援物件導向方面才有較高的完整性),還有一些落後的內建函式 (像是 magic_quote , 下一版要砍掉了) ...等等,很多東西很久以前就要改進了,但是 PHP 硬是拖了一段很長的時間才改進,學長說現在來講的話 PHP 5.4 才是比較穩定且進步的版本,但是聽說 Ubuntu 目前內建的還是 PHP 5.3 的版本(學長一直很討厭5.3版的樣子 XD 因為問題實在很多....)
不過這段令我印象深刻的是內建 web server 那段。其實不只 PHP, 其他像是 Python, Ruby等等,都有內建 web server 的功能。所謂的內建 web server, 就是你不必再安裝像是 Apache server 之類的 web server 軟體,你就直接下個簡單的指令,就可以開啟一個簡單的 web server 了。像是 PHP 的話你只要下個 php -S localhost:8080 指令,就可以在本機端開啟一個 web server , 使用者只要從 port 8080 連進來就可以了,路徑的話,則是 server 端下指令時所在的那個路徑。所以假設我想分享一個檔案給我的朋友,我就先建一個資料夾,然後把檔案丟進去(可以的話順便在那個資料夾裡面建立一個 index.php ),之後我只要先 cd 進那個資料夾,再下 php -S 的指令,我的朋友就可以透過瀏覽器直接電腦去下載那個檔案,相當的方便。python 也有相關的指令,語法為 python -m SimpleHTTPServer。下完指令後會告訴你是使用哪個 port, 之後也是直接連進來即可。不過學長也說這個功能直到 PHP 5.4 才有,讓他覺得很不爽XDDD。
不過婊得這麼兇,學長提到其實 PHP 還是有很多優點的,像是 traits ( 一種混合class的功能,不過似乎是抄Ruby的0.0 ) ,還有一些好用的 Functional Programming, 像是 map, reduce, join, filter...等等,都相當的方便,雖然 API 的格式不一致整體而言都算是相當好用的東西。
最後學長介紹了兩種 PHP 的 Web framework, Codelgniter 和 Laravel,說我們如果要用 PHP 寫可以用用看這兩個框架,聽說都還蠻火紅的。其實以前一直不是很懂 Web framework 是什麼東西,經過學長解釋之後,回去也查了一下資料,總算比較清楚一點了。簡單來說,web framework 就是一個特定的模型,框架,讓你比較方便去開發一個網站。而像是 Codelgniter 這種 web framework,就是一個工具包,裡面很多東西都已經定義好了,像是怎麼跟進行溝通等等,都已經有人幫你好了你只要拿來用就好,這麼一來使用 PHP 開發網站就快速許多。這我想到我做專題的時候跟組員們都是老老實實的用LAMP架構去開發,所有的東西幾乎都自己刻,現在想想當時要是有好好熟悉 web framework 的話就不會這麼辛苦了 = =
參與這次的聚會真的讓我學到了許多東西。我自己本身也是有開發過 PHP 的經驗,但是聽了這次的 talk 之後發現原來還有這麼多有趣的事是我沒聽過的。看來以後要多參加這種類型的聚會,搞不好之後能夠學到更多意想不到的東西。
參考資料:Ruby on Rails 簡介 (內有 web framework 的說明 )

沒有留言:
張貼留言