PHPカンファレンス2009 スペシャルレポート

2日目,テックデイレポート[随時更新]

この記事を読むのに必要な時間:およそ 7 分

moriyoshiさん「PHP を「いじり」倒す 10 の方法」

テンプレートエンジン界のオーバーテクノロジー、さらに世界で初めてテンプレート言語でテンプレートが実装されたPHP、という笑いで始まりました。

「PHPの内部構造を知ろう」ではPHPの内部を簡単な図で解説され、

  • SAPI Module
  • SAPI
  • ZendEngine
  • Extensions

のことを話してもらいました。

PHPのソースコードを読む上でのポイントも解説してもらい、実際にいくつかPHPを改造するポイント、さらに実際に改造のデモも行ってもらいました。

  • htmlspecialを打つのがめんどくさいから、第3引数がutf-8じゃない、それなら新しい関数を追加しよう!
  • autoboxを追加。array(1,2,3,4,5)->join(',') のようなことをできるようにする
  • テンプレートエンジンとしてのPHPを強化。PHPのパーサーで論理構造を解釈できるようにする。

また、簡単にextensionを作成する方法として、boost.php の紹介など楽しい内容でした。

画像

画像

漢祐介さん「Q4MとFlareを使ってスケーラブルなサービスを作る!」

漢祐介(nowel)さんによる,vizooで利用しているQ4MとFlareのお話でした。

Q4Mとは,MySQLを使ったメッセージキューです。メッセージはSQLで書きます。キューの追加はINSERT文を使い,キューの取り出しにはQ4MのAPIを通して,参照はSELECT文を使います。キュー取得までの待ち時間を指定できたり,取得したキューを削除することもできるそうです。

MySQL5.1があればプラグインとしてして導入できます。また言語を問わず使用することができるのも利点です。

Flareは,memcached互換のキーバリューストレージで,株式会社グリーが開発しています。

「Webアプリケーションのおける高負荷になりやすいであろうポイント」として,Q4Mを使うとクライアントにはさっさとレスポンスを返してしまい,ユーザーが何かしらの操作を行っている間にwriteは終わという点があるそうです。

「スケールアウトしにくいポイントと解決方法」では複数サーバーでセッションをどうやって同期するかが挙げられ,Flareを使い分散ストレージでセッション管理をするなどがありました。

Symfonyでの実装方法の紹介もあり,Q4MをSymfonyのtaskとして実装する方法や,FlareをSymfonyのstorageとして実装する方法の紹介をされていました。

「少し凝ったQ4MとFlareの使い方」では,Q4Mでのpriorityでjobを分離する話しや,様々なキューを一元化する方法,Cronの代わりにQ4Mを使う方法など興味深い内容でした。

画像

画像

Fabien Potencierさん「Symfony, a web framework for professional websites」

3人目の海外ゲストは、symfonyの開発者 Fabien Potencier さんです。

symfonyを使っている人という会場アンケートでは半数以上の方が手を挙げられており、CakePHPに近い人気を感じられます。コミュニティも活発で、メーリングリスト・フォーラム・IRCサポートがあります。プラグインは700個を超える数があり、毎日1, 2個のペースで増えているそうです。

既存のオープンソースや、他言語、フレームワークからコンセプトを得、さらに独自のコンセプトを追加しました。次のバージョン,1.3は11月にリリース予定だそうです。そして,1.4が1.x系の最終バージョンです。

エンタープライズバージョンという3年間サポートされるバージョンは,現在1.0と1.4になっています。商用サポートも行われており、他のフレームワークにはあまりない特徴と言えます。Yahooでも使われている実績もあり、ユーザー数2000万人というsymfonyを使ったサイトでは最大規模です。その他にもdelicious.com,dailymotionなど様々な有名サイトで採用されています。

開発・テスト・実運用などの環境設定がsymfonyでは用意に行えるようになっているのも魅力的な点と言えます。 エラーページも特徴があり、見やすいエラー画面になっています。WEBデバッグツールバーというものもあり、他のPHPフレームワークでもsymfonyを真似て似たものが作られています。

テスト環境も充実しており、非常に使いやすいフレームワークになっています。

画像

画像

奥主洋さん「マイクロソフトのWebサーバー(IIS)と一緒にPHPを動かそう!~構築手順 詳細解説と実演~」

マイクロソフト株式会社 エバンジェリスト 奥主洋さんによる,PHPをWindows IIS上で動作させる解説などのお話です。

PHP Coneference 2007 でもお話頂いた IIS + PHP の話題です。新しい IIS では,よりPHPとフレンドリーになっているということです。

IIS7.5 とPHPを動作させるために,IISのインストール方法からのデモがあります。OSはWindows7を利用しているようです。Windows Vista に比べて動作が高速になっているとのことです。インストールはすべてGUIで構築・設定が行えます。PHPはFastCGIを利用して動作します。PHPが動作するまで5分程度で作業が終了し,phpinfo の出力結果が表示されました。

IISでは,アプリケーションごとに異なる設定を用いて,複数バージョンのPHPを共存させることが出来ます。

Microsoft Web Platform Installer & Windows Web App Gallery を用いると,環境とアプリケーションを統合インストーラを用いて簡単に導入することができます。アプリケーションギャラリーには,WordPress などの各種 CMS やブログシステムなどが登録されています。アプリケーションはウェブサイトから簡単にインストールすることができます。WordPress を導入するデモも行われ,環境構築からアプリケーションの導入まで GUI で完結しています。

9月にリリースされたばかりの,Windows Cache Extensions for PHP というMS社純正のPHPアクセラレーターの解説がありました。具体的な数値は挙げられませんでしたが,体感的に速度が向上するとのことでした。現在は beta バージョンです。

最後に,マイクロソフトが運営する OSS プロジェクトのための代表的な "Forge" サイト CodePlexPort 25の紹介がありました。

画像

画像

著者プロフィール

佐藤佳祐(さとうけいすけ)

北海道の大学に在籍し,現在は絶賛就職活動中。nequalに所属し,PEARリポジトリサービス「Openpear」開発を担当。最近はrhaco2と格闘する日々。お仕事の話,待ってます。

URLhttp://riaf.jp/


藤本洋一(ふじもとよういち)

Zend Frameworkのコミュニティ「zf-users.jp」とかやってます。nequal所属。

最近,ふとしたことから無職になってしまったため,絶賛求職中。

URLhttp://wozozo.jp/