技術交流

Zend Framework 應用程式開發:入門篇

更新於

在一月資通電子報「Improve Performance with Zend Data Cache」文章討論如何提高 PHP 應用程式性能。介紹了如何在 Zend Server CE 版本設定相關參數來提高性能。從此篇文章開始,將討論如何用 Zend Framework 架構自己的應用程式。但前提是,您已經掌握了 PHP Programming 及 OOP 的技能。

首先,讓我們先簡單介紹所謂的 框架(Framework)和庫(Library)有何區別以及目前流行的 PHP Framework。

Framework 和 Library 區別

Framework 顧名思義就是:某特定應用領域(Domain)中,程式間共同的結構. 讓該領域的程式設計師們依共同的結構來開發程式,使程式間具有一致性,增加了程式的清晰度,以降低程式的設計與維護費用。

而Library就是在應用軟體開發時相關函數或是子程序的集合。它們是區别于可執行程序,不是獨立的程序,而只是助手代碼。提供一個易於管理的位置,來調用通用的函數(Function)。比如一些可以重用的 function 或是子程序,我們便會把它歸納出來做為應用程序的庫。

框架(Framework) 庫(Library)
讓程式設計師衍生出具體的類別(Class),衍生時可以修改 class 才產生物件(Object)。 讓程式設計師拿現成的類別來產生物件,類別通常不會預留空間給程式設計師發揮。
框架中的類型別函數常會呼叫應用程式中的函數。 應用程式的函數可以呼叫庫中函數,反之則不可以。
框架中類別之間預設了物件之間互助合作的關係。 類別之間是獨立的,並未設定物件間的相互關係及溝通方式。
物件常含預設行為(Behavior),預設行為可以讓程式設計師根據需要修改。 物件的行為皆是固定的,程式設計師無法修正。

現在很多人已經把 Framework 和 Library 混為一談,從上面的描述來看,其實兩者的區別還是很大的。目前 PHP Framework 有數十種,還有國內的一些 Framework 未列入其中,像 ThinkPHP , QeePHP。每個 Framework 都有自己的優缺點,可以根據自己的需求來選擇合適的框架。

PHP Framework

下載最新版本後,把 Zend 資料夾放到應用程式的include path 中,像其它 Library 一樣,能夠 include 得到 Zend 資料夾就可以。建議下載安裝 Zend Server CE 版本,安裝完成後,其中包含 Zend Framework,相關路徑也會自動設置好。

創建第一個專案

創建專案有兩種方式, 一種是用 Zend Studio 的嚮導的方式,另外一種是用 Zend Tool 的命令行的方式創建,本文以後一種方式介紹。

解壓 Zend Framework 後,在 bin 下有 zf.sh 和 zf.bat. zf.sh 是用於 *nix 平台,zf.bat 是用於 Windows 平台(在命令行窗口中 cd 到 zend framework bin 資料夾下執行下面所提及的指令)。本文以 Linux 環境介紹,Windows 下類同。

在 Ubuntu 發行版本中直接用 sudo apt-get install zend-framework-bin 安裝 zf 指令,或是 alias zf.sh=path/to/ZendFramework/bin/zf.sh

創建專案指令

zf create project myproject

具體指令說明請輸入 zf ? 就可以列出所有選項。下完指令,系統會自動創建 Zend Framework Based Application 資料結構。

Zend Framework 是PHP 這門語言官方所出的一個框架,裡面運用了大量的設計模式,相對其他小型的 Framework 來講,它可能算得上是重量級或者說是企業級。其內容也比較多,學起來可能稍有難度,不過,其完善的文檔和官方的一些教程可以幫助我們快速入門。其 Source 完全公開,也有利於我們更深一步的研究。限於篇幅,本次討論的內容就到這裡,下一篇我們將討論 ZF 資料夾結構及如何來佈局。

參考資料

  • Google Android 應用框架原理與程式設計 36 技 2008.10 高煥堂 先生著
  • Zend Framework 官方網站