基本上這裡所謂的整合就是用 CodeIgniter 的 hooks 來做, 單純用 hooks 來設定 include_path, 不然直接設定 include_path, 把 Zend Framework 當成跟 PEAR 類似的放著也可以, 不過由於這樣整合看起來比較帥, 之後程式如果搬家也不會因為失誤而漏了 ZF :p 又, 用 SVN 來管理也方便。
1. 下載 ZF, 把 library 放進 CodeIgniter
就依我的方式, 我是把 ZF 解開後, 把 library copy 放到 CodeIgniter 的 system 下面, 命名為 zendframework
/project/system/zendframework
2. 開啟 CodeIgniter hook
修改 /project/system/application/config/config.php
3. 增加一個 hook 設定
修改 /project/system/application/config/hooks.php, 加入下列程式碼
4. 增加 hook 程式
在 /project/system/application/hooks 裡, 增加一個 zendframework.php 內容如下
5. 最後就可以在 CodeIgniter 中直接叫 ZF 來用啦!
UPDATE:
我的方式是用 Hook 的方式來掛進 ZF, 這裡有篇文章是用 library 的方式來把 ZF 包進來, 可以看看。
話說好像很少看到有人在用 hook~
4 Comments until now
為什麼要這樣做? 整合兩套framework?
@小飯包
嗯~ 因為 ZF 有很多 CodeIgniter 沒有的功能, 又剛好 ZF 不強制用他自己的 MVC, 所以就想到這麼做了。
ZF 有現成的 Services 可以用來存取 Gdata, Yahoo, Flickr, delicious, 直接套進來用, 真的是滿方便的。
其實在這裡我是不太 ZF 當成 framework 來看, 就是當成類似 pear 那種東西(?), MVC 架構用的是 CodeIgniter 的 :p
我個人覺得用hook存在潛在危險。最主要的原因是hook是在呼喚控制器前載入的。如果ZF中的某些功能影響到CI的話,CI就無法正常工作。而且很難debug。
推薦還是用library的方式來結合兩者。:)
@Fred
呵, 感謝~ 不過其實這個方式也只是設定 include path 而已:p
沒有 require ZF 的東西進來的話的話, 也不會有問題, 這個方式簡單的多。
話說, 原來 thislab 是你的站, 讓我嚇一跳 :p 那裡都是英文的, 失敬失敬 :D
Add your Comment!