PHP(Hypertext Preprocessor,超文字預處理器)是一種開源的通用電腦手稿語言,尤其適用於網路開發並可嵌入HTML中使用。
PHP最初是由勒多夫在1995年開始開發的;現在PHP的標準是由the PHP Group維護。PHP以PHP License作為許可協定,不過因為這個協定限制了PHP名稱的使用,所以和開放原始碼許可協定GPL不相容。
PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。
PHP本身的功能,加上成本較低,目前全世界大部分的網頁Server還是使用PHP結合MySql資料庫來撰寫。
資料庫,又稱為資料管理系統,簡單來說,可以看成儲存電子檔案資料的地方,讓使用者可以對檔案中的資料執行新增、搜尋、更新、刪除等操作。
所謂「資料庫」是以一定方式儲存在一起、能讓多個用戶共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合。一個資料庫由多個表空間(Tablespace)構成。
SQL(Structured Query Language,結構化查詢語言)是一種使用在大多數相關資料庫的程式語言,用以詢問、操作和定義資料,以便進行存取控制。SQL最初是由IBM在1970年代開發、同時讓Oracle成為主要經銷商,也導入了SQL ANSI標準執行,SQL已經激發了諸如IBM、Orable、Microsoft等多家公司的擴展。SQL在今日仍獲得廣泛使用,新的程式語言仍逐漸出現。
MySQL原本是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。
MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟體組合LAMP中的「M」指的就是MySQL。
但被甲骨文公司收購後,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司不再支援另一個自由軟體專案OpenSolaris的發展,因此導致自由軟體社群們對於Oracle是否還會持續支援MySQL社群版(MySQL之中唯一的免費版本)有所隱憂,MySQL的創始人麥克爾•維德紐斯以MySQL為基礎,成立分支計劃MariaDB。而原先一些使用MySQL的開源軟體逐漸轉向MariaDB或其它的資料庫。例如維基百科已於2013年正式宣布將從MySQL遷移到MariaDB資料庫。
PHP 是個很容易學習及撰寫的程式語言,對於開發網頁的初學者,可以很快的學會並立即使用。當網站逐漸變得龐大時,如果沒有一套規則來管理日漸增多的程式碼檔案,將會增加錯誤發生的機率,並且也會造成維護上的負擔。這時就需要建立一個架構,讓開發的程式碼檔案遵循這個架構的規範,達到易於維護及擴展。
PHP 的框架非常多,那為什麼選擇 Laravel,因為它真的非常好用且容易上手。沒有繁鎖的設定,框架的觀念簡單易懂,更可以搭配終端機指令,讓開發速度加倍。好用的技術自然會吸引開發者的加入,根據 SitePoint 的調查報告(Best PHP Framework for 2015 – SitePoint Survey Results),2015 年最佳 PHP 框架,Laravel 排名最受歡迎的第一名(其實2014年就已經是第一名了)。
最後,讓我們來看看 Laravel官網 上對Laravel的介紹:
The PHP Framework For Web Artisans.
框架 (Framework) 是一個被設計用來完成特定任務的規範,程式設計師必須遵循這個規範來開發軟體或網站。現在大多數的框架都參考 MVC 架構為概念來設計,在早期開始這麼做的原因是,當時的網頁是由 HTML 混合 PHP 程式碼的方式來編寫,這會造成一個很麻煩的結果,也就是即使你只是單純想改個網頁畫面上的某個元件,並不會動到任何 PHP 程式碼,但是因為它們是混在一起的,所以你不得不在混雜的程式碼中找到它來修改。
於是有人想到了把這些有各自任務的部份切割開來。MVC 架構可以把這些部份各自獨立成 Model-View-Controller(模型-視圖-控制器)。Model 屬於資料的部份,可能是商業邏輯或是資料庫存取等;View 屬於顯示的部份,像是 HTML、CSS 等;Controller 會偵對請求做出回應及處理,例如從 Model 中取得資料,並要求 View 來顯示。
Laravel 是基於 MVC 架構模式來打造的框架,並且設計出許多讓開發者更有效率的工具。Laravel 的 Artisan 提供許多指令,讓你可以使用這些指令,快速的完成許多任務;它的 Blade 樣板系統,將程式碼與 HTML 頁面完整的分離,讓你專注在網頁頁面的設計;它的 Routing 機制,簡單卻強大的管理網址與頁面的路徑指定;利用 Controller 將程式邏輯隱藏在背後;Eloquent ORM 讓你再也不必撰寫任何的 SQL 指令就能和資料庫互動;利用 Migration 工具,讓資料庫的遷移不再是一件惱人的事。還有很多強大的功能,您將在使用後愛上它。
參考資料
PHP
資料庫
資料庫是什麼?
MySQL
認識 Laravel