Zend Frameworkでいきなり嵌った件 | 俺の夢ってなんだったけorz…  的な

俺の夢ってなんだったけorz…  的な

タダの日記なんだからね!!


こいつを読み終わったので、twitterの何がしかを出来るPHPアプリを作成中です。

すでにZend Frameworkは1.10が出ており、この本は1.8で、結構時代遅れとなっています。
使い方は多分変わってないと信じています。

バージョンが増えるとライブラリが追加されていく傾向にあるようで、1.10ではtwitter連携する為のAPIとOAUTHのAPIなど用意されていました。
とても魅力的です。

そして、本には載ってないZend_Oauthの使い方などを調べていました。
まずまず理解したので、コーディングに入ろうと思ったら、いきなり動かなくて嵌りました。

プロジェクトのスケルトンを作るのは確実にzfコマンドを使って作った方が良いと思いました。
それからzfコマンドでプロジェクトを管理していくことは、個人的には面倒なので辞めた方が良いと思いますが、スケルトンだけはzfコマンドがいいでしょう。

zfコマンドで作ったサンプルを動かすのは取り合えず直ぐにできました。

しかし、問題だったのは、Zend FrameworkのURLのルーティングがうまく動かないのです。
初期状態では、
http://localhost/page/action/param_name/param/param_name/param・・・

URLはページURL/アクション/パラメータ。。。と続きURLでアクションを実行するのですが、
これが動かないのです。

僕の環境は以前も書きましたが、Tomcatとすでに連携させていたり、PHPアプリもhttpdoc配下におかずにAliasを設定していたりしています。
xamppは使っていません。

原因は.htaccessにありました。
もちろんLoadModule rewrite_module modules/mod_rewrite.soを忘れるなんて野暮なことはしていません。

こんな感じで、RewriteBaseにパスを通してやらないと、ダメなようです。
その他の記述があってるかは知らんけどw
そうしないとNot Found画面が表示されます。

SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteBase /php/twitter/public
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


httpd.confでAlias使っている場合はこうしないと使えないということを知らなくて、かなり嵌りました。

俺、しょぼすぎだわorz