symfony1.1でsfMailViewを使う
またまたバージョンアップネタ。しかも随分既知っぽいw
symfony1.0系では、Actionsクラスの中で下記のように書くと。。。
$this->sendEmail('mail','sendPassword');
mailモジュールのsendPasswordアクションを呼び出してくれるまでは普通のforwardと同じなのですが、sfMailをnewして、$this->mailにぶち込んでやると、viweクラスが、「sfPHPView」ではなく「sfMailView」を利用して、「sfMailView」は最終的に$this->mail->send();を呼び出してメールを送信してくれるという、ちょっと変わった機能がありました。
ただ1.1にバージョンを上げてみたら、メールの送信部分を担うものがphpmailerから、SwiftMailにチェンジになってるんですよ。これが、ただそれはCompat10プラグインをONにすれば従来の書き方でも対応できるらしいんですが、上記のsendEmailがどうやら「sfMailView」を使ってくれないらしいんですよ。
調べてみたら、Controllerクラスの中で、getPresentaitonForとかいうメソッドを呼んでいて、引数として、viewクラス名を渡せばそのviewクラスを利用してくれるっぽいんですが、どうやら、1.1ではそれが出来てなくて、結局最終的に、「sfPHPView」を使いやがって、メール文言にlayoutが混ざるわ、sendも呼び出しくれないから、どうしたもんかなと頭をひねってたら、既に、おやじ組の中の人が、解決策を示してくれてましたw
all: view_class: sfMail
どうやら、sfPHPView以外を使いたい場合には、module.ymlの中で、下記のように書いてあげれば、そのviewを使ってくれるっぽいですね。
正直助かりました。さすがおやじ組の中の人は違いますね。流石です。
■参考URL