[PHP-users 28309] Re: mojaviについて

nagayasu php @ tnaga.net
2006年 2月 3日 (金) 08:08:36 JST


nagayasuと申します。

sishii wrote:
> php-users の皆様
>
> 石井と申します。
> 現在、php4.4.2 と mojavi2.0.2を使って、
> アスタリスク(http://www.stackasterisk.jp)のサイトを
> 参考にmojaviの勉強をしています。

mojavi.netでmojavi-2.0.3b2が配布されています。

http://mojavi.net/modules/mydownloads/singlefile.php?cid=14&lid=20

>
> 学んでいく中で、2つ疑問・不具合があり、
> こちらのメーリングリストにメールさせて頂きました。
>
> (1)
> 1つ目ですが、http://www.stackasterisk.jp/tech/php/mojavi06_03.jsp#5
> のページで、Actionクラスのinitializeメソッドについて話があるのですが、
> initializeメソッドでクラスの初期化するのであれば、
> それはコンストラクタ内でもできることだと思っています。
>
> 皆さんはどのように、コントラクタとinitializeメソッドを使い分けていらっ
しゃるのでしょうか?

私は基本的にフレームワークを使うときはその流儀に従っています。

Actionクラスを継承して実装する時はコンストラクタ書きません。
親クラスのコンストラクタが呼ばれます。

また、Controllerの中では

$action =& new $actName;

といった感じで書かれているので、$controller, $request, $userが渡されません。
無理してコンストラクタを使う理由がありません。

>
> (2)
> 2つ目は、不具合についてお聞きしたいのですが、
> mojaviとadodbを使った以下のページを参考にして、
>  http://www.stackasterisk.jp/tech/php/mojavi06_01.jsp
> 同じロジック(下記にクラスの概要を書いています)を作ってみました。
> ただ、画面からチャットのデータを入力し、
> IndexActionを実行するとDBにデータは登録できているのですが、
> Executeメソッドの$controller->redirect が機能していないのか、
> 画面が真っ白に表示されます。
> getDefaultViewメソッドにログを仕込んでも何も表示されなかっため、
> redirectメソッドがおかしいと思うのですが、
> 何か解決策をお持ちの方や同じ現象が起こられた方はいらっしゃらないでしょ
うか?
> }

Controllerのredirectメソッドではheader関数でredirectしています。
なので、redirect先のURLはhttp://から書く必要があります。
header関数の詳細はオンラインドキュメントでご確認ください。

一度mojavi-all-classes.phpを読まれると勉強になるかと思います。




PHP-users メーリングリストの案内