CakePHP Eclipseでの設定

Posted in CakePHP, PHP関連, 開発関連 on 2月 16th, 2011 by Site Administrator

http://d.hatena.ne.jp/ngtn/20080204/1202142255

Eclipse上でCakePHP関連のコード補完を有効にするための設定について詳しくまとめてあります。
View内でのHelper、Controller内でのModelなどのコード補完をしたい方はぜひ参考に。

CakePHP (1.3.7) 例外処理とautoRender

Posted in CakePHP, PHP関連 on 2月 10th, 2011 by Site Administrator

ポリシーとして
「処理例外は原則上位にthrowし、controllerのactionでログ出力等の例外処理を行う」
という形で開発を行っています。

各actionメソッドにtry-catchを仕掛けるイメージです。
model・controllerで発生した例外についてはきちんとcatchできるのですが、
viewで発生した例外についてはcatchできません。
標準状態ではautoRenderがtrueになっており、action完了後にviewのrenderが自動で行われます。
当然ながらactionに仕掛けたtryブロックの外で発生した例外はcatchできない、ということになります。

viewのrender時に発生する例外についても洩れなくcatchしたいため、AppControllerで
var autoRender = false;
として、各controllerのactionのtryブロックの最後で
$this->render();
と明示的に記述するように最近はしています。
こうすればrender時の例外はtryブロックの内部で発生することとなるので、きちんとcatchできます。