2008年03月31日

[PHP-ZF] 如何學習 Zend Framework

今天又被問到怎麼開始學 Zend Framework ,我是覺得要上手並不難,但是基礎一定要有。

那麼哪些東西算是基礎呢?當然 HTML 、 JavaScript (Ajax) 或 CSS 等必備技能就不必多說了;以下我介紹幾個我個人認為滿重要的部份以及學習的次序:

物件導向

學習 Zend Framework 時,絕大部份時間你一定會接觸到物件導向,因此物件導向的基本觀念是一定要有的;否則你在運用 ZF 的各種套件時,一定會陷入困惑的泥沼中。

至於物件導向的三大要素:封裝繼承多型,詳細的說明在書本或網路有很多,我就不在這裡野人獻曝囉。這裡推薦:「深入淺出 Java 程式設計」,其中幾章的物件導向概念值得一讀。

設計模式

有了物件導向的觀念後,我強烈建議去瞭解設計模式,因為在 Zend Framework 的套件在設計上用到了許多設計模式。而且我個人也認為適當運用設計模式,能讓我們的程式更強固且具有彈性。

不過我很難用明確的字眼去表達設計模式是什麼東西,那遠遠超出我的能力範圍。因此我推薦這本:「深入淺出設計模式」,它簡單易懂的範例與說明,看完後保證你在物件導向上的功力能增進一甲子。

MVC 概念

MVC 觀念常常是傳統 PHP 開發者所不瞭解的,因為如果能快速把工作完成,誰會想去搞一個看起來那麼複雜的玩意兒?但是 MVC 在運用得當的情況下,卻能讓程式的意圖更加清晰,而且也更容易維護。

事實上 MVC 也是設計模式的一種,而上面那本書裡裡也有提到,建議大家參考看看。不過 Zend Framework 的 WebMVC 在實作上的概念上有稍有不同,我個人自薦這篇:「透視 WebMVC 」;該文會告訴你如何將舊有的 PHP 專案轉換成 MVC 架構。

PHP5

由於 Zend Framework 在開發上採用了 PHP5 的特性,所以 PHP5 也變成學習 Zend Framework 時最重要的基礎之一。而 PHP5 在物件導向也著墨甚多,在語法上也參考 Java 的許多特點,學過 Java 的朋友一定倍感親切。

參考資料方面我個人推薦官方手冊的 PHP5 的 Classes and Objects 一節,另外還有 Standard PHP Library (SPL) Functions

一定的開發經驗

Zend Framework 已經幫我們把很多東西都包裝好了,因此我們很多時候都可以不用重造輪子。但是它只是個工具,而且也不是萬能的,因此有些東西還是需要靠你自己來;所以對於 Web 開發你就必須要有一定程度的瞭解,至少你得曾經獨力完成一個以上的專案。

入門教學

假設以上你都有了一定的基礎,那麼你還需要臨門的一腳。一篇好的入門文章絕對是你學習 Zend Framework 必要的利器之一,因為它能快速帶你進入 Zend Framework 的世界裡。

這裡就不能不提 Rob Allen 寫的文章了,這篇「 Getting Started with Zend Framework 」是學習 Zend Framework 的你一定要載回來仔細研究的好文!不過官方也提供了一篇 Quick Start ,你可以將它和 Rob Allen 的文章交互參考看看 (我個人覺得 Rob 的比較完整) 。

參考手冊與源代碼

如果你已經入門了,那可別鬆懈。因為 Zend Framework 裡面有許多好用的工具,只是看你懂不懂得去運用而已;所以官方的參考手冊API 說明是一定要去看的。而源代碼更是重要,因為當官方手冊的範例或 API 說明明顯不足時,你可以從源代碼裡挖出一些不為人知的秘技,更可以學到許多高深的技巧!

當然以上的基礎不是絕對的,這僅僅是我個人的一些建議而已。希望這篇簡單的說明能幫助大家順利學習 Zend Framework ,也期盼大家能一起分享更多的學習心得。


Posted by jaceju at 16:40回應(4)Zend Framework

2008年03月30日

[Web] 連結分享

PHP

Zend Framework

CSS

JavaScript

jQuery

Web

Internet

Service

Programming


Posted by jaceju at 11:35回應(0)連結分享

2008年03月23日

[Web] 連結分享

人氣不是我建立這個部落格的重點,我只是希望來這裡的朋友能和我一樣能學到東西。

所以再強調一次:我這個壞人只會和「有自己動腦去想過,有自己動手去做過」的同好一起討論問題;那些只是要結果的網友們,請你們去有愛心的地方找食物吧。

當然打屁聊天也是歡迎啦~

PHP

Zend Framework

JavaScript

CSS

Internet

Service

Web

Browser

Design

  • Adobe Fireworks Tutorials and Downloads

    我對 Photoshop 不是很在行,所以我改用 FirefoxFireworks 來處理圖片,因為 FirefoxFireworks的操作對我來說比較直覺。這篇裡面整理的教學所做出來的效果都很棒,有機會我也來試試看。

    字打得太順了,把 Fireworks 打成 Firefox ...Orz (感謝 Neo 指正)

HTML

  • HTML5中 b 和 i 標籤將語義化

    還是看不出來有哪裡不一樣,我個人覺得 b 和 i 實在是呈現不出什麼語意,還是說它們要搭配 class 來用?希望有對 HTML5 比較有研究的高手能為我解惑。

Programming


Posted by jaceju at 14:27回應(2)連結分享

2008年03月17日

Zend Framework 1.5 正式推出

Zend Framework 1.5 正式推出了!

首先官方網站大改版!變得更漂亮了!而且也提供了官方版的快速入門,讓剛接觸的朋友也能很容易瞭解 ZF 1.5 的能耐。

主要更新特色如下:

  • Forms - 提供類似 PEAR 的 HTML_QuickForm 。

  • Layout - 提供類似 ASP.Net 的 Master Page 模式。

  • LDAP/OpenID authentication - 讓應用程式可以整合 LDAP 及 OpenID 的身份驗證。

  • Lucene search engine - 加強了搜尋語法。

  • Extended Ajax support - 支援動態的 Ajax 內容切換。

  • UTF-8 character sets in Adobe PDF creation - PDF 也能支援 UTF-8 字集。

  • Google GData web services - 加強了 GData 的操作。

  • Table Select - 能夠使用 Select 來操作 Table 了。

然而之前說 1.5 可能會將 Command Line Build 放進來,但是很可惜的是時程沒趕上。不過上面這些 ZF 1.5 的新特色,很值得有用 ZF 開發的朋友參考看看喔。

其他詳細消息請參考: Zend Technologies Releases Zend Framework 1.5

註:剛剛看到 Rob 更新了他的教學: Updated Tutorial for Zend Framework 1.5


Posted by jaceju at 22:44回應(1)Zend Framework

2008年03月16日

[Web] 連結分享

PHP

Zend Framework

  • PEAR vs. Zend Framework

    簡單說明了 PEAR 和 ZF 之間最大的不同: Zend Framework 投注很大的心力在套件之間的協同運作,但你還是可以拆開分別運用 (也就是鬆耦合) ;而 PEAR 除了必要的相依套件外,其他都是獨立開發的。兩者的優勢分別是: ZF 發揮了 PHP5 的特性,而 PEAR 則能延展你的程式碼在 PHP4 的生命週期。

JavaScript

  • Performance is Everything

    探討目前主流瀏覽器在 JavaScript 引擎上的效能表現。看起來 Safari 和 Firefox 的最新版本都有不俗的表現,而 IE8 Beta 1 的表現還差強人意。

  • Super Tables - HTML Tables with Fixed Headers and More

    在呈現表格資料時,將表頭固定的 JavaScript 套件。

  • Javascript 的 Database: Taffy DB

    用 JavaScript 寫的 Database ,詳情就請宗董開示。我個人覺得似乎可以拿來暫時包裝一些簡單的資訊:像是購物車。

  • Search and Don't Replace

    討論將 "foo=1&foo=2&foo=3&blah=a&blah=b" 轉換成 "foo=1,2,3&blah=a,b" 的方法。

  • JavaScriptMVC - Model View Controller for JavaScript

    作者開發這個套件的目的是為了應付越來越龐大的 JavaScript Application ,而我還滿欣賞那個 include 功能的。

    PS: 那個在一樓留言的匿名者 (批評別人都不敢留名字?) ,就是標準的文人相輕...唉...作者回得也真是太客氣了。

jQuery

CSS

Database

MySQL

  • Transferring a MySQL database

    如何將資料庫的資料轉移到遠端的另一部 MySQL 主機上。

    mysqldump -h host1 -u username -pPASSWORD database_name | mysql -h host2 -u username -pPASSWORD database_name

Web

Browser

  • 微軟新一代瀏覽器:IE8 Beta1

    上次貼了一堆 IE8 的連結沒寫介紹,所以這次就直接借用別人寫好的連結了。這篇是在介紹 IE8 的特點,還有作者的使用心得。我是比較期待 Firefox 3.0 正式版...

Internet

Programming

Other

Software


Posted by jaceju at 13:43回應(2)連結分享

2008年03月9日

[Web] 連結分享

最近要減少網摘的文章以及連結的說明了,因為那花去我太多時間 (看底下那堆連結...Orz) 。

接下來要把重心放在新的專案上,以及更深入瞭解 Zend Framework 及物件導向的相關知識。

註:這次還偷懶,直接從 Firefox 匯出來貼...如果有發現歸錯類的話,還望大家不吝告知。

CSS

Database

MySQL

Internet

Service

JavaScript

jQuery

PHP

Zend Framework

Programming

Web

Browser

Design

Software


Posted by jaceju at 17:50回應(3)連結分享
 [1]