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

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

昨日に続き、PHPカンファレンス 2009が開催されます。本日(2日目)は、大田区産業プラザ PiOで「テックデイ」と題して、技術よりの多数のセッションが、2つのホールで進行していきます。

本ページでは、2日目のレポートを随時掲載していきます!

イベント開始前

スタッフの皆さんが、あわただしく会場設営等をおこなっています。

画像

安藤祐介さん「オープニング⁠

日本PHPユーザ会 安藤祐介さんによるあいさつから、いよいよテックデイが始まりました。

今回のテーマ「新しいPHPカンファレンス」の"新しい"とは、今まで何なかったことをやるということです。今年初の試みである、昨日のビジネスデイには来場者は110名以上の方が参加していただけたことが報告されました。また本日は、目を向けていなかったこととして、海外ゲストを数人招待しています。一般公募による講演も今年初ということです。

また、本イベント前に事前のアンケートを行い、それをもとにセッションを構成したとのことです。PHPカンファレンスに初参加の方は毎年7割程度だったり(会場の挙手アンケートでもそのような感じでした⁠⁠、フレームワークの利用経験は1位がCakePHP、2位はZend Freamworkという結果だったことが示されました。

そして、今日は本イベントを楽しんでほしい、と結びました。

画像

廣川類さん「基調講演⁠

日本PHPユーザ会 廣川類さんによる基調講演は、⁠PHPの歴史⁠から始まりました。

PHP4.0は2000年リリースされ、日本PHPユーザ会も同じ年に設立されたそうです。PHP5.0は2004年にリリースされました。PHPのどのバージョンを使用しているかという会場アンケートではほとんどの人がPHP5.2に手を挙げられていました。

PHPの実行速度は、PHP5.1./5.2でZendEngineが大幅に高速化され、PHP5.2/5.3ではメモリ使用量が小さくなりました。PHPのセキュリティに関しては、PHPのコードは品質が高いとのことです。テストのコードカバレッジ改善も徐々に行われているようです。

PHP6までのつなぎとして先日PHP5.3がリリースされました。PHP6の機能からUnicodeだけが除かれたバージョンが5.3になっており、名前空間やラムダ関数が使えるようになりました。Pharアーカイブに対応し、PHPアプリケーションの配布が用意になった点も特徴としてあげられます。注意点としては、PHP6削除予定に関する警告が表示されるようになりました。

そして、PHP6の開発は遅延しておりリリース予定は未定になっています。6.0ではUnicodeにネーティブ対応されます。レガシーコード(register_globals, magic_*, safe_mode)の削除もされます。

PHP6の課題では、mbstringの機能の多くがネーティブ実装化されるので、絵文字や文字コード検出などの日本語対応が十分なのかがあります。正規表現には鬼車拡張が提案されています。mbstringは不要になるのかという点も心配されます。

最後に、⁠PHPの未来⁠の話をされました。PHPが成功した理由として、コンセプト(初心者に優しく、現実的)を維持できたことや、コミュニティのサポートがありました。今後はさらに若い開発者にも参加してほしいとのことです。

画像

画像

江明宗さん「台湾PHPコミュニティの日々」

Taiwan PHP User Group 江明宗さんによる台湾のPHP活動の現状として、PHPのイベントでは今回のPHPカンファレンスのような大勢の人は集まらないという話から始まりました。

江明宗さんがPHPを勉強し始めたころ、台湾ではハードウェアが重視されており、それは今日でも変わっていないそうです。その当時のソフトウェアの状況は、ローカライゼーションや書籍、トレーニングを移植していたそうです。台湾でもゲームは人気があり、日本のゲームが特に人気があるそうです。

マルチバイト問題、違法コピー、インターネットバブル、台湾の市場規模が大きくないなど様々な問題もあるそうです。

江明宗さんは最初はコンピュータのメンテナンスをしていましたが、何か差別化が必要だと思いPHPの勉強を始めたそうです。最初は予算が少なかったので、オープンソースのソフトウェアを触ってみたりしていたそうです。

その後 Taiwan PHP User Group(twpug.net) を設立され、TIC100 というオープンソースソフトウェアの中国語化のリソースを提供しています。 osobiz.com というものも設立し、ここでは技術的な問題にソリューションを提供されていたそうが、ユーザ会が次第にアクティブになってきて osobiz.com は不要になったそうです。

ユーザ会では、質問に答えたり、海外の新しいPHPアプリケーションの紹介、PHP関連ニュースやアプリケーションの翻訳やローカライゼーションを行っています。

最近は、PHPフレームワークのやクラウドコンピューティングがあったり、git・mercurialなどのバージョン管理システムや、Trac・Redmineなどのバグトラッキングシステムの話題があると話されていました。オープンソースアプリケーションの採用は進んでおり、WindowsベースからWebベースに切り替わっているようです。

台湾におけるソフトウェア開発の教育はまだまだ進んでおらず、多くの学生が先に就職先を探してから勉強をするという人が多く、就業率は高いと話されていました。インターネットの通信速度の問題もあり、日本と比べるととても遅いとのことです。

国内のような市場規模の大きくところから、世界に視野を広げていかないといけないということや、権利や著作権で争うのではなく、標準技術の積極的に使って行くということもこれから進めて行くそうです。

会場からの質問時間が設けられ、地方におけるIT産業の活発具合は?という質問には、地方ではあまり活発ではないという答えでした。よく使われているツールは?という質問では、フレームワークでは日本同様 ZendFramework や CodeIgniter、CakePHPなどを使っている人が多いそうです。

画像

画像

柏岡秀男さん「~PHP初心者講座~ WEB業界で生き抜くために」

本日は、2つの会場でセッションが行われています。コンベンションホール(サブ会場)からも同様に随時更新していきます!

サブ会場のはじめのセッションは、日本PHPユーザ会 有限会社アリウープ 代表取締役 柏岡秀男さんによるPHP初心者向けの発表です。

はじめのセッションにかかわらず、会場はほぼ満員状態で、関心の高さが伺えます。初心者向けのセッションですが冒頭の質問から「PHPを用いたプログラムを書いたことが無い」という方は0人でした。

「PHPとは?」として、PHPの初歩の初歩から解説されました。

ウェブを当初から意識して開発されたPHPの「得意なこと」⁠苦手なこと」や、昨日のセッションでもお話しされたWordPressを例にとって「PHPでできること」などの紹介がありました。

実際にPHPを使う方法としては「PHPが使えるサーバー」を借りてしまうのが簡単ということです。このように、環境構築の手間がかからないのはPHPの魅力の1つです。

また、手軽なローカルの(外部に公開しない、自分のパソコン上で動かす)PHPの環境構築として、XAMPPの紹介がありました。XAMPPとは、PHPのほかにウェブサーバーやデータベース(MySQL)がすべてパッケージになっているものです。XAMPPだけで、自分だけの環境はすぐに用意することが出来ます。

PHPの外部ライブラリとしてPEARの紹介もありました。

テンプレートエンジンとしてSmartyが紹介され、簡単な利用方法などの解説もありました。UI設計と、システム設計をそれぞれ独立して作業したい場合はテンプレートエンジンを採用するとよいとのことでした。

フレームワークを利用した開発にも触れられ、Ethnaを例にとってMVCの簡単な解説もありました。フレームワークを利用した場合の利点と欠点についても触れられ、フレームワークをどう選択するかなどについても説明がありました。

PHPの勉強方法としては「PHPマニュアル(php.net⁠⁠」を利用するのがおすすめで、サンプルコードやコード付きのコメントなどが豊富にあるので非常に役に立ちます。他にも、メーリングリスト、SNSのコミュニティや各種勉強会に参加してみるのもよいでしょう。

画像

画像

Brian Shireさん「APCによるハイパフォーマンスの実現」

海外ゲスト2人目は、絶大な人気を誇るSNS、FacebookのBrian ShireによるAPCの紹介です。

APCは他のエクステンションと同様にpeclでインストールすることができます。十分なメモリを割り当てることが重要になっています。

キャッシュには大きく分けて2つあり、1つ目はOpcodeそのもののキャッシュ、2つめはUserVariableCacheです。UserVariableCacheはどんなPHPオブジェクトでもキャッシュすることができます。キャッシュには大きな配列などではなく、小さな値を入れた方がいいそうです。

APCのパフォーマンスチューニングにはいくつかの方法があり、APCをそのまま使うのではなく、ロックシステムを例にとるとデフォルトではロックにはFileLockが使われています。FacebookでSpinLockを使用しているそうです。LazyLoadingもFacebookではかなり重要な役目を果たしているそうです。

現在開発中のAPC4.0ではLeast Frequently Used(LFU)という方式も組み込まれます。

もうひとつ現在開発中の機能として、No-copy Shared cacheというものがあります。Opcodeを共有メモリからローカルプロセスにコピーしてから実行していましたが、これを使うと共有メモリにおいたままで実行できるようになります。コピーの手間が省けるので、他のOpcodeキャッシュに比べてかなり有利になるそうです。

PHP6にはAPCが取り入れられる予定になっているそうで、PHP6からは更なる高速化が期待できそうです。

会場からの質問で、設定時のポイントは?という質問に、まずスタックのオプション、つぎにロッキング、またUserVariableCacheを設定してあげるとさらに効率が上がるのではないかと話されていました。

APCを導入した方がいいサイトは?という質問では、PHPを導入しているサイトの多くは効果がある。大規模なシステムのサイト、ユーザーキャッシュを有効に使っているサイトではさらに高速化につながります。facebookのような本質的にリアルタイム性の求められるようなサイトにも向いている、とのことです。

画像

画像

新原雅司さん「PHP を見える化する」

PHPの初級者向けの講演で、新原雅司さんには基本的なデバッグ方法から、debug_zval_dumpという関数で変数の内部がどうなっているのか調べる方法を話して頂きました。

プロファイルに関しては、Xdebugを使ったプロファイルの取り方を、デモを交えてわかりやすく紹介してもらいました。

  • Windows環境での「Xdebug + WinCacheGrid」
  • Web上で動く「Webgrind」
  • facebookで開発されていて、PHP内部のコールグラフを表示できる「XHProf」
  • Xdebugの機能である「Function Traces」

画像

画像

mocapapa「はじめてのyii」

フレームワーク「Yii」についてmocapapaこと桜井厚さんの発表です。

mocapapaさん自身はCodeIgniter、ちいたんといった他のフレームワークを使用してきたそうですが、yii 1.0のリリース記事を見たのをきっかけとして、yiiを利用しはじめたそうです。

また、LOCAL PHP部 札幌勉強会02においてid:nazoneさんが発表した2009年のPHPフレームワークなども参考になることが言及されました。

YiiはAPC(PHPコードキャッシュ/最適化)との相性がよく、APCを利用した場合、他のフレームワークと比較して、より大幅に高速になるということです。

以前はフレームワークの比較として、決定的な方法がありませんでしたが「同じアプリに対して違うフレームワークで実装して比較してみるしかない」という企画"PHP Framework Fight!"を参考に「オフ会くん」という宴会くんクローンをYii、ちいたん、CodeIgniterを比較したところ、一部機能のソースコードの行数はそれぞれ13行、34行、49行で記述できたということです。

Yiiは新しいものが好きな方、先取りしたい方、英語が得意な方、速度を重視する方におすすめということですが、ユーザーベースが少ないので、初心者にはおすすめしにくいとのことでした。

画像

画像

田中康一さん「PHPアプリケーションフレームワーク Agavi入門」

フレームワーク「Agavi」について日本Agaviユーザー会 田中康一(MugeSo)さんの発表です。

「PHP用Webアプリケーションフレームワーク」ではなく「PHP用アプリケーションフレームワーク」ということで、Webだけではなく、アプリケーション全般の開発を意識して開発されているということです。

Agavi は 2005年5月に Mojavi 3-dev からフォークされ、2005年6月にAgavi 0.9としてリリースされました。

MVCモデルに基づいた、Agaviの処理フローの解説や、それぞれの処理についての解説がありました。

IRCや、メーリングリストなどのサポートの紹介もありました。

画像

画像

辻岡国治さん「フレームワークCodeIgniterを使ってのアプリケーションプラットフォーム作成による、業務案件、アプリ開発の効率化について」

Usagi Project、日本CodeIgniterユーザ会 辻岡国治(kunitsuji)さんの発表です。

CodeIgniterは、動作が高速・制約が少ない・拡張しやすいなどの特徴があり、また、ソースコードが理解しやすいそうです。

セッションの管理、ユーザー管理、ブラウザ判別などの機能はデフォルトで存在しないか、非常に使いにくいものとなっているなど、⁠機能が足りない」と思われがちですが、これはつまり「簡単に足す」ことができるとのことです :-)

Usagi Project では開発協力者を募集しているそうです。興味がある方はそちらにも参加してみてはいかがでしょうか。

画像

画像

安藤祐介さん「CakePHPストーリー」

CakePHPを使ったことがある人という最初の会場アンケートでは、かなりの人が手を挙げていました。 採用事例は国内外問わず増えており、niftyやミスユニバースのサイト、mozillaのaddonサイトなど有名な所で採用されるケースも増えています。また、日本でCakePHPのことが書かれた本は10冊程度出版されており、日本語情報もかなり手に入るようです。

CakePHPの今後については、CakePHP2でPHP5化・CakePHP3はフルスクラッチで書き直しPHP5.3化を行う予定です。 日本では10月30日、31日にCakeMatsuriというイベントも開催される予定です。⁠まだまだ発展するCakeワールドを楽しんでみませんか?」という言葉で締めくくられました。

画像

画像

Kenji Suzukiさん『PHP逆引きレシピ』とセキュリティのこと

「PHP逆引きレシピ」の著者 Kenji さんの発表です。

初級者、経験が少ない方、セキュリティを学び直したい方が対象の書籍で「やりたいこと」を目的別にまとめたレシピ集ということです。

会場では、ほとんどの方が書籍については知っているようでした。うち、3?4割程度の方がすでに持っているようです。

「ほとんどのPHPの書籍には脆弱性がある」という現状を踏まえ、サンプルコードを含めセキュリティを意識して書かれているそうです。

画像

画像

菅礼紗さん「現役高校生のPHP開発」

菅礼紗さんの発表です。なんと、現役の高校生です。

もともとは Perl を使っていたという菅礼紗さん、Perlに不満を感じていた頃、高速に動作するPHPに魅せられPHPを使うようになったそうです。

CAPTCHAやなぞなぞ認証(はてな)の代替として利用できる妹認証についての話で、笑いを誘っていました :-)

Xely "ソーシャル・クリエイティブサービス"という新サービスを開発中とのことです。今後の展開に注目ですね。

画像

画像

sotarokさん、riafさん「新しくなったOpenpear」

sotarokさん、riafさんによる、Openpearのお話です。Openpearのこれまでの経緯とこれから、利用方法が説明されました。

なお、発表当日にOpenpear2.0をリリースを目指して努力していたけれども、間に合わなかったとのこと。セッションタイトルも発表の最初で改題されています。

最後に、Openpearにぜひ参加してほしいと、呼びかけていました。

画像

画像

永原智聡さん「PHP初心者勉強会について」

株式会社uqunie 代表取締役 永原智聡さんのお話です。

初心者勉強会は非常に人気があり、毎回定員オーバーしているそうです。

会場には毎回困っていたとのことでしたが、現在は関東IT健保の会議室を利用しているとのことです。

「これからPHPを始めたい」という初心者の方は、参加してみてはいかがでしょうか。

画像

画像

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の紹介がありました。

画像

画像

ライトニングトークス

小山健一郎さん「Tokyo Tyrant + PHP」

PHPからTokyoTyrantを使いたい!

tokyotyrant_phpを作ったそうです。peclのものが最も高速。PurePHPならNet_TokyoTyrantがおすすめ!

画像

hnwさん「phpall:PHPの全バージョンの挙動を試す⁠

PHPいっぱい持ってます!

phpallを使うと複数のPHPバージョンを一気にテストすることができます。過去のバージョンのPHPは http://museum.php.net/ で拾えます!

画像

萩原崇之さん「クラウド対応型フレームワーク「Monocheros⁠

MonohecrosはGoogleAppEngine上で動くPHPフレームワークです。

画像

大垣靖男さん「PHP4の現状とセキュリティパッチサービス⁠

色々な貧弱性が未修正で残っていて、PHP5への移行コストも高いので、PHP4セキュリティパーッチサービスをやっておられるそうです。

画像

yokkunsさん「初めてのPHP Extension⁠

PHP Extensionを作る際に引数の型の受け取り方や、配列やオブジェクトの内部構造を解説されました。続きは次回だそうです!

画像

鈴木則夫さん「クロージング⁠

PHPカンファレンス2009 実行委員長 鈴木則夫さんから、閉会の言葉が述べられました。

画像

展示ブースも大盛況

2F会場の入口には、スポンサー各社による展示が行われており、セッションの合間の休憩には多くの来場者が足を止め、担当者に話を聞いたり、意見を交換したりしていました。中でもPHP on IISなどの展示を行っているマイクロソフトのブースや、WebCMS eZ Publishのブースなど、これまでのPHPカンファレンスの展示ではあまり見られなかった内容に、興味を持つ来場者が多数いたのが印象的でした。

マイクロソフトのブース。PHP on IISを始め、CodePlexなど、マイクロソフトが取り組むPHPおよび各種プロジェクトについて紹介されていました。

画像

ゼンド・ジャパン株式会社(左)と株式会社セラクのブース。Zend Frameworkに関する情報(ゼンド・ジャパン)やPHP開発に関するソリューションなどについて紹介されていました。

画像

eZ Systems Japanのブース。PHPベースのWebCMS、eZ Publishが紹介されていました。

画像

盛り上がった懇親会!

テックデイ終了後、4Fのスペースを使用して懇親会が行われました。懇親会では、美味しい料理やお酒とともに、スピーカー、スポンサー、参加者が一堂に会し、それぞれのPHP談義に花を咲かせていました。

また、途中、有志によるライトニングトークやスポンサーからのプレゼントタイムなど、最後まで非常に盛り上がったカンファレンスとなりました。

チョコレートファウンテンには、つねに人だかりができていました。

画像

スピーカーやスポンサー、聴講者といった枠を越えて、皆が楽しい雰囲気の中、PHPトークに花を咲かせていました。

画像

懇親会でのライトニングトーク。本編とは異なった雰囲気で楽しいプレゼンテーションが行われました。

画像

ライトニングトーク出演者は、お酒を片手にぎりぎりまで資料制作に力を入れていました。

画像

今回で第10回目を迎えた記念に「"新しい"PHPカンファレンス」というテーマが掲げられた本イベントでしたが、次年度以降にも期待できる素晴らしいイベントでした!

開催に協力を頂いたスポンサーの皆様の紹介、謝辞に拍手喝采で、2日間にわたるイベントが終了となりました。講演者・スポンサーのみなさん、参加者のみなさん、スタッフのみなさん、お疲れ様でした!

イベント本編のレポートは以上となります。PHPカンファレンス 2009 ブログにおいて「IT系イベント史上最速のリアルタイムレポートが実施されます」と紹介されてしまったので、期待に応えられるよう努力しましたが、いかがでしたでしょうか。

最後までお読み頂き、ありがとうございました!

おすすめ記事

記事・ニュース一覧