symfonyチュートリアル実践【第17~18日目】

17日目

API。フレームワークのチュートリアルにAPIの公開の仕方が載っているとは意外。

init-moduleした後、まずは”HTTP Authentication”。new api/index web serviceで自動生成されたapps/frontend/modules/api/actions/actions.class.phpを全面書き換え。apps/frontend/modules/api/templates/errorSuccess.phpとapps/frontend/modules/api/config/view.ymlを記述して

http://askeet/frontend_dev.php/api

にアクセス。

Undefined variable: error_code

error_messageにも同じエラーが出る。Noteに書いてあるようにforwardの部分を修正してみた。

apps/frontend/modules/api/actions/actions.class.php:

//$this->forward('api', 'error');
return array('api', 'errorSuccess');

エラーは直ったがHTTP-Authにならず、そのままerrorSuccess.phpが表示されているので意図したとおりに動いていない。errorSuccess.phpのファイルがなければHTTP-Authのユーザ名とパスワードを聞くプロンプトが出るのだが。。

チュートリアルのコメント#2にも同様の問題が発生しているようだがレスはない。SVNのレポジトリにあるソースは相変わらずチュートリアル内とだいぶ違うが解決策は見当たらず。

PEARの中のsymfony/response/sfWebResponse.class.phpでheader()が呼ばれているところで適当にechoしてみたところ、ご丁寧にHTTP-Authのheaderを送った後に200を送っている。マニュアルを見るとheaerは類似のHTTPヘッダは上書きされるらしいので、これが動かない原因と判明。

うーん。これってsymfonyのバグ?仕方ないので放置して次へ。

そういえばフォーラムで質問したのはそのままレスが付かず、放置されている。僕の書き方がまずかったのかもしれない。チュートリアルからリンクされていたフォーラムに質問したが、MLとaskeet.comもあるのでどこに質問するのが一番いいのでしょう?フォーラムよりaskeet.comの方が活発なようだ。そして、askeet.comがチュートリアルでつくっているサイトそのものだということに今ようやく気付いた。気付くの遅すぎ。

18日目

フィルター。サブドメインを使ってtagを指定できる機能をつけましょう、ということだがなぜそんな機能を付ける必要が。。フィルター自体はActionが実行される前に実行されるクラスのことらしい。

ざっと読んで終わり。コメントも1つしかついておらず、だれてきた感がある。

This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

Page optimized by WP Minify WordPress Plugin