symfonyチュートリアル実践【第10~11日目】&Forumに参加
Ajax続き。
特に問題ないですが”The answer/add action”のところでapps/frontend/config/routing.ymlに記述するコードにスペルミスがあります。コメントの#11で指摘されていました。
AjaxでアクセスするURLなので、最初は気付きませんでした。symfonyと言えども、さすがにAjaxのデバッグまで手厚いサポートがあるわけではない模様。ブラウザで直接アクセスしてみて404だったのでprintデバッグで解決。apps/frontend/modules/answer/actions/actions.class.phpのexecuteAddでecho ‘hello’;して
http://askeet/frontend_dev.php/answer/add
だとhelloが表示されるが本来の
http://askeet/frontend_dev.php/add_answer
で表示されなかったのでrouting.ymlがおかしいな、と判断。
prototype.jsには慣れているので時々生成されているHTMLのソースを見たりしてデバッグする感じでした。
続いてfeedを出力しましょう。
$ symfony plugin-install local symfony/sfFeed
で
ERROR: symfony - Failed to download symfony/symfony within preferred state "beta", latest release is version 0.9.2641, stability "alpha", use "channel://pear.symfony-project.com/symfony-0.9.2641" to install symfony/sfFeed requires package "symfony/symfony" (version >= 0.8.1, version < = 0.9.99999), installed version is 0.6.3 No valid packages found install failed
あちゃー。やっぱりsymfonyはチュートリアル通りbetaを入れるべきでした。
飛ばして"Interface improvements"。まぁ、Feedのアイコンぐらい表示しよう。
Fatal error: Call to undefined function link_to_rss() in /home/funaki/work/sfprojects/askeet/apps/frontend/modules/sidebar/templates/_default.php on line 7
defaultSuccess.phpではなく自分の環境ではapps/frontend/modules/sidebar/templates/_default.phpになっているがこのエラー。
link_to_rssはlink_to_feedの間違い。チュートリアル中でもRSSとFeedどちらの単語も使っていて紛らわしい。このスペルミスはコメント欄にも指摘がなかった。
で、コメントしようとsubmitしたら
Please correct the following errors and resubmit:
* The name field cannot be left blank
* The text field cannot be left blank
むむ?
フォーラムでぱっと検索してもコメント欄がおかしいよ、というTopicは立っていない模様。
あきらめそうになりましたが、ぐっと踏みとどまってsymfonyのforumに登録。
登録時のCaptchaがアスキーアートになっていて面白い。自分のブラウザのフォントでは等幅になっておらず最初読めませんでしたが。
つたない英語で投稿。文法滅茶苦茶でも意図が伝わればいいのだ、と開き直り。伝わるはず。。
とりあえず11日まで終了。