PHP勉強会に行ってきました(前半)

麻布で行われたPHPの勉強会に行ってきました。
株式会社ノッキングオンさんが会場を提供してくれたそうです。ありがとうございました。
麻布だけあってオシャレな雰囲気です。ホームページもオシャレです。


東京タワーが間近にあってキレイだったので写真を撮ろうと思ったのですが、携帯電話のカメラではキレイに撮れませんでした。残念。


以下、感想文。

PHP5移行ツールを作ってるよ

株式会社ウノウの尾藤さん。
PHP4で書かれたソースコードはPHP5で動かすと構文エラーが出ることがあるらしく、それをなんとかするため、PHP4で書かれたソースを読み込んで、PHP5でも動くように変換するツールのご紹介。


PHPPHP構文解析ができるということに驚きました。構文解析ができちゃうんだったら、PHPでもコンパイラとか作れちゃうのかもしれません。PHPで作られたRubyの実行環境ができて、レンタルサーバーで手軽にRuby on Railsが動かせるようになって、、、みたいな妄想をして興奮していました。

PHPのsessionモジュールのソースコードで気づいたこと

排他処理のお話でした。ファイルとかデータベースを読んだり書いたりするときは、排他処理をしないといけない。
PHPでは自前のsession管理機構を作れるので、ファイルやデータベースを使ってセッション管理する際には色々と気をつけるべし。ということでした。
驚いたのは、データベースでセッション管理をしようと思ったら、トランザクション管理がキッチリできるデータベースを使わないといけないこと。「InnoDB使っておけば大丈夫だろう」と思っていたのですが、それだけではダメだそうです。アイソレーションレベルを一番厳しいものに設定して、さらに「select for update」で検索しないと厳密にはできない。っていうのを実演して見せていただきました。
「mkdirでロックするのがいいよ」「NFSでロックする手もあるよ」という話題も出ていました。みなさんファイルのロックについては色々と思うところがあるようです。


私は、Perlを覚えたての頃に丸暗記してソラで書けるまで「書き取り」をしていたアクセスカウンターのCGIを思い出して、ノスタルジックな気分に浸っていました。
mkdirでロックってどうやるんだろう・・・?

マッシュアップアワードとPHP

リクルート/メディアテクノロジーラボの川崎さん。R25やホットペッバーを作っている会社です。
WSS ( Web Service Schema ) という仕組みのお話。
最近は色んなWebサービスがあって、APIが公開されていて、既存のサービスを組み合わせたマッシュアップサービスがいっぱい出てきている。各サービスのAPIは汎用的に使えるように、XML形式でデータをやりとりするようになってる。リクルートさんでも色んなサービスのAPIを公開しているので、今よりもっと手軽に既存のサービスを使えるようにしたい。
というわけで、Webサービスを使うためのライブラリを生成してしまう仕組みを作っているのだそうです。
公開APIのインターフェースをyamlで記述しておくと、JavaScriptからそのAPIを使うためのライブラリとか、Perlから使うためのライブラリが、スイッチポンで生成されるのだそうです。Google Code で近日公開予定。楽しみです。

むかし何かの雑誌で「WSDLでサービスを定義してSOAPで通信して言語に依存しないでWebサービスを使おうー!」みたいな記事を読んだことがあるのですが、誌面から溢れ出さんばかりの大容量XMLファイルの前に膝を折りました。多分アレをもっとシンプルに、使いやすくしたものだと思います。(違ってたらごめんなさい)

そういえば、Webサービスを利用するライブラリといえば、プロキシを設定するための仕組みがなくて、会社の中から使えなくて泣くことが多いです。生成されるライブラリにsetProxy()メソッドがあるといいなーと思いました。


後半は明日書こう。。。