ごめんなさい

Zendの酷評を書きまくったが、今日そのどれもが間違ってた事に気づいた。
ここで訂正。

まず、ビューの切替えが出来ないと嘆いていた件。
$this->render("<.phtmlを除いたビュー名>");
で出来ます。

あと、_forward。
これはforwardする側でしたことを引き継いで別のActionに遷移します。
引き継がないとか書いたけど嘘でした。ごめんなさい。


ここから今日の成果。
Validationをやってみた。
Zend_ValidationとZend_Filter_Inputを組み合わせると結構簡単にバリデーションができる。
が、メッセージがわかりにくいと言うか英語なので、それを置き換える必要がある。
置き換えのやり方が面倒で、それぞれのバリデーションごとに設定方法が違う様。
基本的には、messagesキーに設定すればOKのはずが、うまくいかないこともあり、難航中。
あと、コントローラのエラーでイミフなエラーメッセージはどうにかしてほしい。これはマジうざい。


いろいろと使ってみて、ネットも見て、
ZendFrameworkの立ち位置がようやく掴めてきた。
これは、それぞれの部品が独立していて、
フレームワークと言うよりはフレームワークにもなる部品群という見方をすればそれはそれで使い勝手がいいのかもしれない。
Zend_Services何かは使い用によっては便利だし、Rpc_XMLも使える場面があれば便利。
それぞれ独立して使えるようになってるのね。


フルスタックなフレームワークと違い、生産性の面では、多少劣るが、
全体的に見れば良いフレームワークなのかもしれない。
まぁ、Cakeの方が断然いいけどね。


このCakeと比べると言うのも、土俵がちと違うので、比べるという観点が間違いなのかもしれない。



追記
ZendFrameworkはmod_rewriteへの対応が希薄。
こないだ書いたindexAction問題もそうだし、
cssやjs、imgのパス指定もしかり。
cakeでは、(苦肉の策で)$html->urlや$html->imageがあり、それらを使うと、
webroot配下のパスを自動的にいれてくれる。
が、これと同等の機能はzendにはない。
ようは、自分でやれって事。

$request->getRequest();
$this->view->baseUrl = $request0>getBaseUrl();

src="<?php echo $this->view->baseUrl; ?>/images/imageName.gif"
のような感じ。


あと、トラックバックをもらったブログで
ActionとViewは生で使わない方がいい。とのこと。
確かに。