前言
雖然 PHP 不是什麼新鮮流行的玩意兒,但 PHP 仍然是市佔率最高的網頁程式語言 (參考這裡和這裡)。這種市佔率高但討論度低的程式語言,恰巧符合悶聲發大財的行事原則。
什麼是 PHP?
PHP 是一種用來撰寫網頁應用程式 (web application) 的程式語言。和其他語言相異處在於 PHP 一開始就是內嵌在 HTML 頁面的模板語言 (template language),不需要再為網頁程式使用其他模板語言。實際上,PHP 不僅可用來生成 HTML 頁面,也可用來生成 XML、JSON 等多種文件,甚至可以動態產生成圖片等非文字檔案。
PHP 死了嗎?
時常會有網路文章討論「PHP 死了嗎?」這是因為 PHP 不再新潮很久了,被誤以為是過時的技術。
但 PHP 仍活躍著,PHP 官方團隊持續維護和更新著這個語言。有許多網頁使用 PHP 製作,像是部落客最喜歡的內容管理系統 WordPress 就是用 PHP 寫的。維基百科和臉書 (註) 也是用 PHP 寫的。更別說許多現存的網站是用 PHP 寫的。只要這些應用還在,PHP 就還是活的技術。
(註) 臉書原本是用 PHP 撰寫,後來逐步遷移到 Hack。詳見後文。
PHP 的用途
根據 PHP 的官方文件,PHP 具有以下三種用途:
- 撰寫網頁程式
- 撰寫命令列程式
- 撰寫視窗程式
絕大部分的 PHP 學習者都是為了撰寫網頁應用程式而學習 PHP。毫無疑問地,這項應用是 PHP 的主要用途。
除此之外,PHP 也可以用來寫命令列程式。光是 PHP 內建的功能就很豐富了。只是這項應用盛行的程度不如 Perl 和 Python。
雖然 PHP 可以寫視窗程式,但 PHP-GTK 看起來很久沒更新了,建議還是換其他更適合的工具吧。
選擇 PHP 版本
由於 PHP 6 是一個未發表的版本,PHP 的大版本號在 PHP 5 後就跳到 PHP 7 和 PHP 8。
雖然 PHP 8 已經問世了,許多主流的 GNU/Linux 發行版的 PHP 版本仍然停留在 PHP 7。所以,使用 PHP 7 來學習 PHP 是可以接受的。至於 PHP 5 則是過期的版本,不會收到安全性更新,也不應繼續使用。
Hack 又是什麼?
Hack 是類似 PHP 的程式語言,可視為 PHP 的方言 (dialect)。實際上,Hack 是為了儘量保持 PHP 相容性的前提下,用來解決臉書的工程議題的語言。在臉書以外的應用相對稀少。
但 Hack 已經不再相容於 PHP 了 (出處)。所以,把 Hack 當成一個類似於 PHP 的新工具比較好。本系列文章不再介紹 Hack 相關的內容,會專注在 PHP 上。
需要使用 GNU/Linux 來學習 PHP 嗎?
絕大部分的 PHP 網頁程式都是架設在 GNU/Linux 上,最好還是要學習 GNU/Linux 命令列環境的使用方式。
GNU/Linux 一開始的困難點在安裝。但是,這個議題可以很輕鬆繞過去。像是在 VirtualBox 上用虛擬機器玩 GNU/Linux。真的玩壞了,砍掉重來即可。或是 AWS Cloud 9 這類結合雲端 IDE 和 GNU/Linux 虛擬機器的開發環境,也相當易用 (參考這裡)。
限於篇幅,本文不說明 GNU/Linux 的使用方式。大家都知道可以看鳥哥的網站,所以站長短期內也不會去寫這些內容。
考量 Windows 使用者眾多,站長會在本系列文章簡單地介紹在 Windows 上使用 PHP 的方式。實際部署 PHP 網頁程式時仍然建議使用 GNU/Linux。
需要學習網頁技術嗎?
一開始在學 PHP 語法的時候,不需要學習網頁技術。但要用 PHP 動態生成網頁時,就要會 HTML 了。至於 CSS 和 JavaScript 可以延後一點學。不會 CSS 只是頁面看起來樸素單調,但不影響其內容。JavaScript 一開始完全不寫也不影響 PHP 的學習。
筆者先前寫過幾篇基礎的網頁技術文章 (HTML、CSS、JavaScript)。這些文章很短,只是用來建立基本概念。接著再去看其他的資料,慢慢補足網頁技術的部分。
需要學習 WordPress 嗎?
WordPress 是內容管理系統 (content management system),如果沒有要建立內容型網站 (content website) 的話,不需要學習 WordPress。實際上,很多部落客只會少量的 PHP 或完全不會 PHP,但仍可用 WordPress 製作網站。
待學會 PHP 以後,也可以自行幫 WordPress 寫佈景主題 (theme) 或外掛 (plugin)。有這個能力的話,自然就不是新手,也不需要這系列的文章。
需要學習 PHP 網頁框架嗎?
PHP 在 PHP 網頁框架出現前就存在好長一段時間。原本純 PHP 腳本就可以用來寫網頁程式,使用 PHP 網頁框架寫網頁程式反而是後來才發展出來的方式。
即使想用 PHP 網頁框架來寫網頁程式,而不用純 PHP 腳本,還是要先懂原生 PHP。至少要分得出來那些部分是原生 PHP 就能使用的,那些是網頁框架額外加入的功能。