symfonyのroutingとapacheの設定

symfony の apps/front/config/routing.yml の設定内容

# default rules
homepage:
  url:   /
  param: { module: default, action: index }

default_action:
  url:   /:action
  param: { module: default }

default_index:
  url:   /:module/
  param: { action: index }

default:
  url:   /:module/:action/*

こんな感じで、/で終わった場合はmoduleにマッチさせるようにrouting.ymlを書いてみた。

で、問題は/で終わらないdefault_actionの方。apacheは同名のディレクトリが存在する場合、下記のようにリダイレクトを掛ける。

/foo -> /foo/

これをやられると、action名と同名のディレクトリを作成できなくなる。そこで、DirectorySlashをOffにして逃れるという手を使った

http://httpd.apache.org/docs/2.2/ja/mod/mod_dir.html#directoryslash

DirectorySlash Off

こうすれば、ディレクトリがあっても補完されなくなる。

セキュリティ警告

末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を 招くことになるかもしれません。 mod_autoindex が有効 (Options +Indexes) で、 DirectoryIndex が有効なリソース (例えば index.html) を指していて、また、要求のあった URL に特別な ハンドラが設定されていない場合を考えてみてください。 この場合末尾にスラッシュのついているリクエストに対しては index.html ファイルが返されます。しかしスラッシュのないリクエストに対しては、 ディレクトリの内容一覧を返してしまいます。

こういうのがあるそうなので

Options -Indexes

を忘れずに指定する

SQLite

仕事で初めて使ったけど、結構普通に使える。SQL92準拠なら、ちょっとしたスクリプトの場合はポータビリティを考えるとお手軽でいいかも。ON CONFLICTとかあんまり馴染みのない構文も面白い。

TRUNCATEしようとして、構文ないから調べてみたら、

DELETE FROM t1;

でシーケンスが初期化される模様。興味深い。

最近SQLをもう一度勉強し直そうと思って読書中。

ソーシャルソフトウェア

という考え方が結構前に話題になった。今その辺を調べている。
後でまた調べる時の為のメモ。

日記再開

三日坊主にならない事を祈りながら、少しずつ書き始める事にする。

BEST SOFTWARE WRITING

BEST SOFTWARE WRITING

Joel on Softwareの人が選んだエッセイ集みたいな本。

前半は比較的どうでもいいのが多いけど、後段の方は面白かった。

  • スターバックスは2フェーズコミットを使わない - Gregor Hohpe
  • チームへの報償 - Mary Poppendieck
  • グループにとって最悪の敵は自分自身である - Clay Shirky
  • ユーザとしてのグループ: フレーミングとソーシャルソフトウェアのデザイン - Clay Shirky
  • ギャップを埋める - Eric Sink
  • 採用の危機 - Eric Sink

この辺が興味深かった。

PHPカンファレンス2007

毎年のように遅刻して、今年も廣川さんの基調講演を半分聞き逃してしまいました。

廣川先生の話

      • -

ウノウCTOとグリーCTOの話

みんなデプロイの部分で悩んでる。

      • -

Framework Update

  • Symfony
    • Yahoo! Bookmarkで採用されてる。
    • 事例が少ない。
    • 重量級すぎて、使う気すらしない凄いフレームワーク
  • CakePHP
    • 日本で一番検索されるのはMojaviです
    • 一度検討したけど、フルスタックなアプローチが好きになれなくて放流。
  • Piece Framework
    • 継続とURIの関係が若干微妙。
    • それでも継続ベースというのは魅力的(他のFWにはない)
    • Pieceというのが魅力的
  • Ethna
    • mumumuさんがcommitterに
    • 今のコードベースを引き摺っているEthnaは使いたくない。よくも悪くもfujimoto神のフレームワーク
      • -

PHP at YAHOO

saraの写真初めて見たかも!
他の話は規模感違いすぎて、あまり参考にならない。話半分に聞いていた。

      • -

全体的にPHP界隈にはマンネリ感が漂っている。その理由はPHP4からの移行がまったく進んでいないところにあるのかも。

PHP_GenDocBlock

まだVotingされているところっぽいですが。

コメント書くのが面倒な自分にはかなり良さげなツールです。

$gendocBlock = new PHP_GenDocBlock();
$gendocBlock->run('sample.php');

これだけで、ちゃちゃっとDocBlockをコードに付け足してくれます。

使い方は

Example 1: Creates DocBlocks in foo.php with default license, package name, etc...
$gendocBlock = new PHP_GenDocBlock();
$gendocBlock->run('foo.php');

Example 2: Creates Docblocks for foo.php in docfoo.php with some specific Page tags
$param = array('license' => 'apache20', 'category' => 'PHP',
'author' => 'John Foo', 'email' => 'jfoo@mail.com', 'year' => '1999-2007');
$gendocBlock = new PHP_GenDocBlock();
$gendocBlock->run('foo.php', $param, 'docfoo.php');

Example 3: Realigns DocBlock tags
#gendocblock -A foo.php

Example 4: Creates Docblocks for foo.php in docfoo.php with some specific Page tags
#gendocblock -la -c PHP -a "John Foo" -e 'jfoo@mail.com' -y 1999-2007 foo.php docfoo.php

こんな感じだそうです。