mongoose 3.1 でurl_rewrite_patterns が設定できるようになりPHP アプリケーションの開発サーバにApache HTTPD やnginx が不要になった

mongoose というのはhttpd のことで、Mongoなんとかの周辺ツールのやつではありません。
http://code.google.com/p/mongoose/

PHP をCGI で動かせるのでPHP での開発でめんどさくかったウェブサーバのセットアップの手間を省けて便利に使っていた。
が、今まではソースが.htaccess(Apache HTTPDでいうmod_rewriteでのURL置き換え)に依存してたりするとmongoose 単体でデバッグがしずらく仕方なくApache HTTPD をセットアップしていた。

PHP 5.4 でもビルトインウェブサーバが入っているけどとくにURLを書き換えたりする機能はないみたい。dispatch.php みたいなものを書けばよさそうだけど

まあ /index.php/hello/world のまま全部使えるんならそれでいいけど静的ファイルの参照先が崩れる。

url_rewrite_patterns(Alias)は単純な内部URLの文字列置き換えっぽいけど自分が求めていたことはできそう。
Symfony Standalone 2.0 のDemo アプリケーションで試してみる。

    cd web
    mongoose -I ~/bin/php-cgi -w "/bundles=bundles,/**=app_dev.php"

bundles ディレクトリは静的ファイルがあるので優先してそのまま書き換えて、あとはapp_dev.php にURLのパスを引数として渡す

http://localhost:8080/demo/hello/%E3%81%8A%E3%81%BE%E3%81%88
にアクセスして確認

わーい

無事、Symfony 2.0製のアプリケーションを動かすことができました