全国1千万人のphperの皆さん、Zend Framework 弄ってますか。

Zend Frameworkとは、Zend Technologies が 2006年3月頃に出したMVCなフレームワークで、php界が4から5へ移行が進む中で出た沢山のフレームワークのうちの一つです。

因みに Zend Engine、Zend Optimizerでお馴染みの Zend社は Zend Studio というIDEも出していまして、私はVer.2.5の頃に使ってました。

今は バージョン10まで進んでいるそうですけど、今まで使っている人に遭ったことがありません。

そんな Zend Frameworkのインストールはダウンロードして include_path を書くだけです。

まだあまり触れてませんが、他のMVCフレームワークを触ったことが有るなら、そんなに違和感なさげです。

はじめにハマった点をメモしておきます。

こんなんが出ました。

Fatal error: Class ‘Zend_Controller_Exception’ not found in /path/to/ZendFramework/library/Zend/Controller/Plugin/Broker.php on line 313

ライブラリの Broker.php の preDispatchメソッドの中で何かあって、Zend_Controller_Exception を投げ損なっている様です。

てかいつのまに php て try〜catch使える様になったんすか。

throw new Zend_Controller_Exception($e->getMessage() . $e->getTraceAsString(), $e->getCode(), $e);

たまたまinclude_pathをコマメに定義しなおしているやつで発生したので設定ミスかと思い結構時間がかかりましたが、原因はそれじゃないみたい。

単純に Exception.php がロード出来てないだけの様です。

こうしたら治りました。

require_once ‘Zend/Controller/Exception.php’;

throw new Zend_Controller_Exception($e->getMessage() . $e->getTraceAsString(), $e->getCode(), $e);

Zend Frameworkの1系の最新1.12.3でもココの部分のコードは同じですから、Framework側のバグとは考えにくい。

うーん何か間違っている気がする。

オートローダー関連だろうか。