それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

symfony でForardするときに変数を渡す

久々にsymfonyを使っている。ググったら昔の自分の拙いログにヒットした。恐ろしいので追記しておく。
symfonyでForward処理すると$thisの値が持ち越せない。

$this->forward(Module,ACTION);

は、内部的に、Actionクラスがもうインスタンス化されれた。と考えておくとよいようだ。

なので、Forward処理をする際は、セッション(ユーザークラス)に値を保存するとイイみたい

$this->getUser()->setFlash()#1.2系
$this->setFlash()#1.0x系

Flashしておくと、値を消す手間が省けてイイ。まぁrequest変数にSetしてもいいのだけれど。

$this->getRequest()->setAttribute( $name , $var);

どちらにしろ使い捨て事がミソ。Structsの頃からそういえばそうでしたね。Mojavi後継のsymfonyも同じなんだろう。

$request->getMethodName()が変更されており・・・symfonyではまる。

symfony1.2で開発していると、時々1.0のことを忘れてしまう。

<?php
$req = ( $req != null ) ? $req :  $this->getRequest();
$req->getMethod() == "GET" #1.2だと TRUE
$req->getMethod() == "GET" #1.0だと FALSE

?>

Var_Dumpして値をよく見てみると。

<?php
$req->getMethod()  #1.2だと GET
$req->getMethod()  #1.0だと int(2)
?>

1.0系だと
getMethodName()だった。こういう変更はホント困る。