— CakePHP1.2でZendFrameworkを使う
Posted: Sep 23, 2008, 11:55 am | Author: cyberryo | Category: Dialy | Tags: Cakephp, Program
CakePHP内の持ってない機能をZendFrameworkで補うことに。最近のZFはとても高機能な上に、つまんで使えるのが素敵。
CakePHP1.2.x.xになってからvendor()が使えなくなりました。
PEARとかZendFrameworkを使うときにはクラスファイルを読み込む際にinclude_pathを通さなければならないので、その辺も踏まえつつ。
まずはZendFrameworkをダウンロードして、[app/vendors]に[Zend]をまるごと入れる。
そして、インクルードパスを設定するファイルを用意する。
app/vendors/zend_init.php
<?php
ini_set('include_path', get_include_path() . PATH_SEPARATOR . APP . 'vendors');
?>
あとはコントローラーで、zend_init.phpと使う機能のファイルを読み込んであげる。
1.2.x.xになってvendorsが使えなくなったので、別の方法で読み込む。
例えばフィードを取得してパースしたいとき。
app/controllers/hogescnotroller.php
<?php
App::import( 'Vendor', 'Zend', array('file'=>'zend_init.php'));
App::import( 'Vendor', 'Zend_Feed', array('file' => 'Zend'.DS.'Feed.php'));
Zend_Feed::import('http://hogehoge.com/feed');
こんな感じでZendが使えるようになりましたとさ。
(おまけ)
WindowsのXAMPPで使おうとしたら、
domdocument::domdocument() expects at least 1 parameter, 0 given in
こんな感じのエラーが出ます。
これが出た場合はおそらくphp5で、php_domxml.dllを使っている場合に出てしまいますので
apache/bin/php.ini
php/php.ini
;extension=php_domxml.dll
これをコメントアウトしてあげるとちゃんと動きます。
php4の場合は逆に、コメントを外すといいはず。