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

当日レポート[更新終了]

9月15日、大田区産業プラザPiOにてPHPカンファレンス2012が開催されます。本稿では、本イベントの各セッションの模様を随時更新形式でレポートしていきます。

なお、本年は3トラック構成のため、すべてのセッションをレポートできておりません。気になるセッションはUstream中継等をご覧になってください。

今年はWordCamp Tokyo 2012と共催で、1階のホールを分けて使用しています。

画像

WordCamp Tokyo 2012のレポートはこちらをご覧ください

今年のスタッフTシャツは、こんな感じです。

画像

休憩スペースは茶屋風で、和風な雰囲気。

画像

会場に来られない方のために、ベストエフォートでUstreamによる中継が行われています。各トラックのチャンネルは以下のとおりです。

廣川類さん『基調講演』

昨年と同様、今年もPHPユーザー会の廣川類さんによる基調講演「PHPの今とこれから 2012」からPHPカンファレンス2012は幕を開けました。 まずは、ポスト5.3時代のコードとしまして、Slimフレームワークのコードを例にComposedや名前空間、無名関数などについて語れらました。

次に、PHPのバージョンアップのメリット・デメリットについて語られました。

  • 更新する理由
    • セキュリティ・バグ修正
    • サポート切れ
  • 更新しない理由
    • 更新・確認の手間
    • 新機能・性能の魅力小
    • 周辺環境の更新が追いつかない

更新すればセキュリティやバグの修正など様々なメリットがあります。 しかし、更新するための確認の手間、周辺環境が対応してないなどを考慮すると実務ではなかなか更新できない場合も多いのかもしれません。

また、PHPのフレームワークと相互運用性の未来にもふれ、PSR(PHP-FIGによって策定されたコーディング規約)という決まりの元、開発していくことで、各フレームワークのいいとこ取りができるという話は会場の興味をひいていました。

最後にPHPの成功と未来について語られました。⁠学習の容易さ⁠⁠、⁠進化の継続」の2点を挙げられていました。 PHPのドキュメントの豊富さは他の言語を圧倒してます。学習の容易さに繋がってますね。

まだまだ進化していくPHPに今後も期待されます。

画像

画像

上村宏紀さん『いまだからできる、ふつうのはなし』

レスポンスを素早く、確実に返す。そんな普通のことが、バックエンドのエンジニアの仕事と語る上村宏紀さんの講演がはじまりました。

長く続くサービスの基盤の作り方が大事とは書いているが、そもそも大規模とは何なのか? GREEなので大規模の話を期待される方が多いかもしれないですが、どうやって続けて行くのかの方が大事なのでそちらの話がメインになります。とのこと。少しだけ残念。

大規模の定義としては・

  • データ的に50億のレコードがあるとか⇒メモリやディスクに収まらなくなる
  • トランザクション的に100万トランザクション/secとか→スループットが足りなくなる
    ☆データがたくさんあってたくさん処理しなくては行けなくなるとか・

この辺りが大規模とのことです。これは分かり易いですね。

【最初から大きくなることが分かっているテーブルを分割して別々のサーバーに置くことを前提に作成する。】これが大事らしいです。

後から分割することもできるがとても難しいので、新しく作成する時にはあらかじめ分けてしまうのだそうで。 これはサーバーの数によって変わるのではないというのもなかなか興味深いです。

例えば購入履歴であれば日ごとのテーブルにしたり、所持カードのリストであればユーザーidでmodを取って100分割したテーブルをサーバにマッピングするそうです。実際のサーバーは5台で足りる場合は、1~20までをサーバー1へ、……みたいな作り方を考えておくと良いとのこと。勉強になります。

  • スループットを増やすには⇒スレーブを増やす。参照クエリの数が増える時は何とかなる。多段スレーブにする。が、やりすぎると遅延の問題が出てくるので、10台から15台くらいでおさめたい。スケールアップとしてメモリを増やしたり、Fusion-ioを使うとかでも対応する。
  • クエリのチューニングcoverning index(selectの取るカラムを全部indexに全部入れてしまう。容量は巨大になるが高速⁠⁠、index full scan(これはここでは説明できないので、特殊なケースにおいて高速化できる。調べてください)このあたりで対応する。

スライドには記載されていませんでしたが、素晴らしい情報でした。

  • 負荷対策の実例として行ったことは
    →スケールアップとInnnoDB化。
  • 1master/6slaveで運用中のDBセット
  • 月に数回SlowQueryが発生してレプリケーションの遅延が発生する
  • memoryを16GBから24GBへ
  • Slaveを3台に

GREEではなんと、オンサービスでAlterを流さなければいけないらしく・会場からもすこしざわめきが。 さてどうするのでしょう・

現行セットは現行セットで存在させ、並列で新セットを作成(セットというのはマスターとスレーブを合わせた状態を言います)し、参照系だけを新セットに向ける。

一気に向けると、ページキャッシュが載っていないので、まずはページキャッシュをコピーするとよいそうです。 !!autoIncrimentをまずは調整(これをしないと大惨事⁠⁠!! たしかに! レプリケーションが破壊されてしまいますし・

次に両方のマスタに対して書き込みをするようにプログラムを修正。 完全に新マスタに書いている状態になったら、新セットのみにするとのこと。たしかにこれなら・ただ、サーバーをたくさん使うので、コストは掛かりそうですね。GREEさんならでは!ですね。

で、ここに来て、ほぼすべての問題が解決してしまったとのこと。よく聞く話です・

その後いっさいSlowQueryは発生せず、さらにSlave台数の削除まで検討できるようになったそうです。

――結局機械で解決してしまった(クエリのチューニングをせずとも終わった⁠⁠。――エンジニアとしては複雑。

とはいえ、クエリのチューニングの話もでました。 例えば、バッチの処理が遅くなって来ている

  • IDごとにレコードを更新。結果レプリケーション遅延が頻発
  • 4000/secのupdate文が飛んでいた。
  • in句でバルクupdateすることで対応。結果として70/secのupdate文へと変化

大昔に書かれた処理があるとき火を噴く例と語っておられました。。コード的には分かり易いので、書いてしまいそうですが、バッチとなれば、そんなことを言っていられませんね・

ここからまとめに入りました。さらーに講演のペースがアップ!!

完璧なシステムを作る!!というのは努力するべきことだが、それが必ずしもよいサービスにつながるわけではない。 その時点に置いて完璧なものではなく、継続的に変化できるようなシステムにしなければならない。 これでシステム完璧!ではなくて継続的に続けて行かなければ成らない。

大変興味深い内容でした。

画像

以降はGREEのアーキテクチャがどのように遷移して行ったかの話が語られました。

=以下、箇条書きで記載します。

  • 2005年GREEそのものができた
    • Ethnaで書かれていた
  • 2006年GREEメールというのができた
    • テーブル分割開始
    • フラットな1クラスで表現するには複雑な共通機能をserviceとしてまとめた
    • DAO導入。分割テーブル
    • SQLの動的な生成
  • 2007年serviceが重要に。
    • 多用な分割DBへの対応
    • SQL動的生成の廃止
    • よりチューニングのしやすさに特化
    • SQLそのもので書いた方が望ましい
    • 2011年まで続けた
  • 2011年激動。gitへの移行
    • Aoiカスケードというのができた
    • 階層化された構造の強制
    • KVS導入
      • memcache、flare導入
    • より厳密な型変換を行う。PHPとのやりとりはすべて文字列である!とした。

振り返り。

  • Ethnaがずっと存在している
  • 凄く良くも無いけど、別に困らない
  • 認証、リクエストの割当、バリデーション
  • DOAデーターオリエンテッドアーキテクチャ
    • SNSメインだった
  • SOAサービスオリエンテッドアーキテクチャ
    • モバイルゲームに移行した
    • 階層化による段階的な移行を行ったから可能になった。
      • 影響個所をごく一部に限定できる
         いまいちだった時に捨てられる
         複数のアーキテクチャが相乗りするので勉強するのが大変
         既存の機能は改善されないので、安定していることが前提
         地道な改善が必要
  • 監視は技術者みんなで行う。
  • 対応可能人員を増やす
  • gitHubを活用した開発スタイル
  • デプロイの速度を向上させている。

画像

総合のまとめ

  • ディスクから読んだら負け!!
  • フルスタックフレームワークは夢!
  • 早く見つけ早く直す!

これが大事とのことですね。

私も1エンジニアとしてうなずける内容の多い講演でした。

柏岡秀男さん『初心者セッション』

有限会社アリウープの柏岡さんにより、PHP再入門ということでセッションは始まりました。 今回は、PHPの歴史とPHPの学び方を中心にお話されていました。

PHPの歴史

  • 1995年 PHP Toolsとしてソースコード公開
  • 1998年 PHP3公開
  • 2000年 PHP4公開、PHPユーザー会ができる
  • 2002年以降 フレームワーク時代に突入
  • 2004年 PHP5公開、PHP5の長い時代の始まり
  • 2008年 マイクロフレームワーク登場

ようやくPHP6がでるかと思いきや、PHP5.4公開 ほぼメジャーバージョンアップに近いものだそうです。

新機能としては、

  • 配列の改良
  • Traitsの導入
  • ビルドインサーバ

などが導入されたとのことです。

PHPの学び方

初心者へのオススメな学び方としては

  • php.netのチュートリアル
  • WordPress等のカスタマイズ
  • 問い合わせフォームを作る
  • フレームワークのチュートリアル

などをやってみることがよいとのことです。 会場では、php.netの使い方等を説明されていました。

中級者の方には

  • WordPress等のプラグイン作成
  • 掲示板を作る
  • 外部サービスとの連携
  • フレームワーク・ライブラリ等のソースを読む

などをやってみることがよいそうです。

上級者の方には

  • サービスの一般公開
  • オープンソースアプリの開発
  • フレームワークを作る

などがどうでしょうか?とのことでした。

PHPはマニュアルが素晴らしいので、困ったときはマニュアルをみようとのことです。

画像

画像

kenjisさん『達人出版会からPHPの本を出版しよう』

画像

kenjisさんはPHP技術者認定上級試験の認定者の1人(まだ世界にに7人しかいません!?)です。

kenjisさんの著書はじめてのフレームワークとしてのFuelPHP⁠、好評発売中です。

なぜいま達人出版会なのか?

PDF&EPUB
電子書籍のPDFとEPUBの両方が対応している。 電子書籍は軽い!そして、検索可能です。
DRMfree
DRMもしくはソーシャルDRMになっていて、PC、タブレットなどいろんなデバイスで見ることができます。
無償アップデート
改訂版が無償でアップデートされています。

達人出版会いいよ!

Git/Redmine
達人出版会は原稿用のGit/Redmineを無償で提供してます。
自動組版
組版プロセスが自動で行われ、従来紙媒体のプロセスより簡単になっています。
ReVIEW
世界制覇をもくろむ電子書式入稿フォーマットです。
印税率が高い
紙媒体の5倍です。

まだ達人出版会はできて日の浅いサービスなので、知名度があまり大きくないですが、 ReVIEWで書いて、Gitで原稿を入稿刷るといった、新しいエコな出版方法を提案しているよいサービスです。

企画受付フォームも用意されているので、本の企画を送ることができます。 皆さん、達人出版会から本をだしましょう。

達人出版会いいよ!! とのことでした。

徳丸 浩さん『徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012』

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012と題しまして、安全なPHPアプリケーション開発のための最新情報を「10の鉄則」を徳丸本こと『体系的に学ぶ 安全なWebアプリケーションの作り方』の著者、徳丸浩さんが発表されました。

鉄則1では、socket_connectやcryptのオーバーフローの話、is_a関数の脆弱性で__autoloadが呼ばれてしまう脆弱性を実演付きで解説、また、記憶に新しいPHP-CGIの脆弱性にも触れました。

鉄則2では、AJaxの脆弱性の対処についての発表、HTMLエスケープの仕方やJSONハイジャックへの対処など動的なサイトを作る際に必要になってくるAjaxのセキュリティの話を詳しく解説されました。

鉄則3では、競合条件の脆弱性対処の話、ドリランドのカード増殖事件はこうして起こった(かもしれない)というテーマで実際に「鳥ランド」というサイトを作り、カード増殖の実演を行い、SQLのトランザクションの重要さについて発表されました。

その後、鉄則4はhtmlspecialcharsの話、鉄則6ではSQLインジェクションへの対処の話と徳丸本に沿った内容の発表が続きました。

鉄則3までの内容が非常に詳しく、全部は発表できなかったため、続きは後日、資料とあわせてWebで公開されるそうです。 今年も最後の一言は、⁠徳丸本を買ってよく読め!⁠⁠。会場の笑いを誘っていました。

画像

画像

高橋裕也さん『これくらいはやってほしいWebデザイン』

アシアル株式会社の高橋さんによる発表が行われました。

今回Webデザインの話をしようと思ったのは、PHPはWebアプリを開発する、UIデザインはさけては通れない。 だったら、エンジニアもデザインのことを少しでも知る必要があるんじゃないかとのことでした。

セッションの目的として

  • デザインセンス不要
  • グラフィックスソフト不要
  • プログラミング言語不要

が挙げられました。

必要なのは、⁠あなたのやる気」とのことです!

憶えてもらいたいテクニックとして

  • グリッドシステム
  • ホワイトスペース
  • アプローチ

が噂?になっているとのことです。

理想のページとしてTwitter Bootstrapのページが挙げられました。

グリッドシステムは、垂直水平にガイドを与えることで、整然とした印象を与えることができるそうです。 ホワイトスペースはページの中で最も面積が多い部分で、スペースの取り方が重要です。コツとして意図して配置する必要があるとのことでした。 アプローチとは関連する要素はなるべく近くに配置するという工夫だそうです。見た瞬間に伝えるためには重要な要素とのことでした。

画像

画像

石山 宏幸さん『アニメ好きのためのサービスあにみたについて』

画像

FuelPHP、MongoDB、Twig、jQuerymobileなどを利用して開発したサービス あにみた の紹介です。

あにみたは、アニメ好きのためのチェックインサービスです。

あにみたを開発した思い

  • アニメ好きで多くの視聴アニメを管理したかった!
  • 得意なジャンルならがんばれそうだから!
  • ある程度の要望があり、利用者は想定できたから!(twitterの実況者は50万人規模らしいです)
  • まだ知らない面白いアニメの発掘

FuelPHP

使い慣れたCakePHPからFuelPHPを利用しました。

FuelPHPここがすごいよ!

  • API作成が楽
  • MongoDBも標準対応
  • PHP5.3x以降対応なのでAutoload安定

FuelPHPここ大変だったよ!

  • 命名規則を覚えるのが大変
  • Config設定がちょっと癖がある。

Webサービスを初リリースしてみて

  • 新しい技術って楽しくて苦しい
  • とりあえずサービスを出してみるって大事。
  • サービスは「作って終わりじゃない」は本当!
  • サービスの利点もいっぱいだよ!
  • ユーザーさんの反応があるってうれしい!
  • 皆さんもこの機会にアニメ視聴しませんか!

あにみたをよろしくお願いします、とのことでした。

wokamotoさん『Nginx + PHP』

シェアを伸ばしつつあるWebサーバNginxでPHPを使う際の注意点や、チューニングノウハウについて Digitalcube wokamotoさんの講演です。

普段は新潟で米をつくっている!!とのことで・コンバインの写真がスライドに登場。

と、会場の雰囲気が緩くなった所で始まりました。

画像

現在Nginxは1.2と1.3がリリースされているそうで、リリースから、もう9年も経っている、かつ今やApacheに次ぐ地位とのことで、もはやこれは安定技術と言えますね。

AWSのp1マイクロにて、ApacheとNginxの比較のお話がはじまりますが、思ったよりも速く無いようなグラフ。 ノーマルではすごい速い!という訳ではないという・じつに謙遜な講演者様です。

これはとりあえず導入すれば早くなる!と思っていた私にとっては地味にショックでした。

ReverseProxyCacheを導入すれば、アプリケーション側でキャッシュを実装しなくても、キャッシュされるようになるとのことです。

画像

かつ、キャッシュはファイルになっているので、削除も簡単。

実はノーマルだと消す設定に成っていないとのこと。割と大事なことをサラっと話しておられるよう聞こえました。

これは増えまくる可能性があるので注意ですね。

その後はWebで続きを見てくださいという流れで終わりました。

個人的なコメントで締めくくると・ 上司に「Nginxいいっすよ!大丈夫っすよ!」と言うための材料は揃ったように感じました! ありがとうございました!

anatooさん『縁の下の力持ちxdebugの縁の下!』

縁の下の縁の下・それは地面なような・と突っ込みたくなりますが、 xdebugの仕組みについて扱われる講演だそうです。なかなかマニアックな内容ですね。期待感が高まります!

anatooさん登場です。アシアルでごちゃごちゃやってる人だそうです(ご本人談ですよ!⁠⁠。

xdebugの機能として、

  • コードカバレッジ取得
  • 関数トレース
  • リモートでバッグ
  • プロファイリング

これらが存在しており、もはや業界のデファクトスタンダードとなっています。たしかに。むしろ他を知らない・

考えている内に各論に移りました。この話もかなりのハイペースの予感。

PHPUnitを使う時の網羅率はどうやって取ってるの?

  • xdebug_start_code_coverage();を実行すると、PHPで実行された行を取得できる。

そもそもPHPはどのように動いているのかというと、

  • 字句解析(何をしている行(固まり)か)
  • 構文解析(分岐構造か)
  • コンパイル(zend_op_array構造体を作成する。zend_op_array構造体とは、zend_op構造体の列が入っている。zend_op構造体とは、アセンブラのような文が並ぶもの)
  • 実行(zend_op_array構造体を解釈して、zend_op構造体を一個づつzend_execute関数に渡して実行する)

これが流れだそうです。

zend_op構造体に対して、振る舞いを変えるオーバーライドを行い、このオーバーライドにより、現在の行を取得し、かつ、実行された行をマークすることが可能になるそうです。

画像

画像

関数トレースは?

  • xdebug_start_trace();を実行すると、実行された関数がいつ実行されたのかがログに残される。
  • zend_execute関数を挿げ替えてフックしている(具体的にはxdebug_executeに挿げ替えている⁠⁠。
  • この関数は、関数ポインタなので、書き換えることが可能になっている。
  • xdebug_trace_function_beginの中でzend_execute関数を呼び出している。

なるほど。

リモートデバッグはステップ実行を可能にしているが、どうやっているのか?

MacGDBpを用いてブレイクポイントを付けるデモ(記者はこのツールを使ったことがありません・・⁠⁠。 どうやって通信しているのか?

Common DeBug Protocolにて通信している。

すべての構文を実行する度にフックし、呼び出しているとのこと。 ⁠大量のコードと、関数名が出て来て書ききれず・申し訳ないです。⁠⁠)

まとめ

PHPの中にはフックできる所がいっぱいあるとのこと・で締めくくられました。 xdebugのコードを読んでみると楽しそう!とは思いました。家に戻りましたら、私も見てみることにします!

関田文雄さん『スケールする PHP Web アプリケーション開発入門』

画像

画像

Windows Azureってなに?

ザックリとAWSと同じようなサービスを用意してます。 従量課金サービスです。

Linux、node.js、php、pythonそれぞれにSDKを用意して使いやすい環境を用意しています。

Windows Azure Webサイト

最初からフレームワークが入ってる環境で、ユーザーはアプリケーションだけを入れることができます。 ユーザーがクリックするだけでWordPressやフレームワークを立ち上げることができます。

セッションでは実際にWebサイトを立ち上げるデモが行われました。 SCALEボタンを押すとスケーラビリティの設定ができるようになっています。

デフォルトだと共有インスタンスになっていますが、スケールしたい場合はボタン一発で、 インスタンスの変更、そして、独自インスタンスへの変更も可能です。

アサヒビールのCM動画の配信サイトはWindows Azureを利用しています。 先ほどのWindows Azure クラウドサービスを利用してもらい、簡単にスケールアウトできます。 LinuxとNginx、MySQL、ISSなど、 Windowsだけでなく様々なOSに対応しています。 virtualマシンのページを開き、10分程度で対応した各種OSのインスタンスが立ち上がります。 ウィザードベースからのhttp、sshのポート公開設定なども簡単にできます。

画像

画像

Azureの価格

無料評価版は1core占有のインスタンスが750時間/月で使えます。 またWebサイトでは10サイト、ストレージ10GB、MySQL 10MBが12ヶ月無料で使えます。

Windows Azureはパソナテックさんのサイトで随時受付中です。

10/4に渋谷ヒカリエでDevCampというAzureのイベントがあります。皆さんぜひご参加ください、とのことでした。

ha1tさん『最先端Web開発』

KLab株式会社黒井春人さんによる「最先端Web開発」の発表が行われました。

なんと「本当はDietCakeの話をメインにする予定だったけど、今回はしません!」とのこと。 改めて発表された本日のセッション内容は、

  • 最先端Webってなに
  • 私達が採用した基盤技術
  • コミュニケーション

となりました。

最先端Webってなに

今回のお話の最先端については以下の2つと定義づけていました。

  • 数十万単位のユーザーが、同時に、かつ連続的にDBへの書き込みを必要とし、さらに整合性を担保する必要があるようなリクエストを問題なくさばくシステムを開発していること
  • 上記の最先端のシステムをスキル差のあるメンバーが集まって、短期間でたくさんのアプリケーションを開発していること

Klab株式会社では、様々な技術のエキスパートが低レベルから高レベルまで多数在籍しているため、この力の差を埋めることが重要と考えているそうです。

そこで、この力の差を埋めるため、⁠技術による下地」を作って「コミュニケーション」をとっているとのこと。

技術による下地とは、プロジェクトメンバー全員がスーパープログラマーではないので、できる限りシンプル(簡素)に、わかりやすく(覚えることを少なく)して、間違いや失敗を、⁠自動的・他動的に)発見できる 仕組みを作ることだそうです。

私達が採用した基盤技術

PHP+DietCakeを採用し開発をしているとのこと。

何故PHPを使うのか

「コード読まずに書き足すな。自分が理解できないコードを書くな」を大原則とした場合、誰もが読めるような言語・フレームワークが必要となる、その結果としてPHPがあったそうです。

何故DietCakeを(作った|使った)のか

既存フレームワークの既知の問題としてバージョンによる互換性のなさを例に上げ、DietCakeを変化しないフレームワークとし、それをメリットとして考えているそうです。

コミュニケーション

コミュニケーションについてはgithubによるPull Request運用、4人でグループを作り、1人がドライバーとしてプログラムを書き、3人がナビゲーターとしてjoin.meを利用したリモートで見ながらすすめるグループプログラミング、お菓子駆動開発の三点を挙げていました。

グループプログラミングを導入した際のメリットとしては以下のことが挙げられるそうです。

  • ペアプロと比較すると、1つの問題に対処する人数が多いため、疲労が少ない。
  • ナビゲーターの数が増えることでドライバーへの情報量が圧倒的に増えるため、ドライバーがナビゲーターの導くままにノンストップでコーディングできる。
  • メンバー全員がメンバーの癖、得意・不得意を把握できる
  • 文字には起こせない案件独自の情報も含めて一気に共有できるため、開発メンバーが増えた時に超高速で把握してもらえる。

最後にまとめとして、以下の三点を挙げていました。

  • チームの中でコードを書くということを考えて見ると、実行速度を少し早くしてみたり、膨大なドキュメント書いたり、モダンな技術を使うだけでは解決しない問題がたくさんあるということがわかる。
  • できない人を見て「スキルがない=使えない」と安易に判断するのではなく、⁠どうやってスキル差を減らしながら、役割分担していくか」を考えていくべき
  • 技術だけに注力しない

画像

画像

田中康一さん『PHPではじめるオブジェクト指向』

はじめに、オブジェクトとは何か?の基本から始まり、オブジェクトがメッセージをやり取りするという ことが、オブジェクト指向の基本的な考えであるとの説明がありました。

PHPでのオブジェクト指向

クラスの説明からPHPでのオブジェクト指向への説明へと移っていきます。 概念的な説明と、具体的なPHPのソースコード付きで、実際のクラス定義から、インスタンス化まで、簡単に説明が進みます。 継承、インターフェイスにも触れられ、こちらも概念とソースコードによる説明がありました。

続いてPHP5.4で追加された新機能、トレイトにも触れられました。 概念的には、あるクラスに機能をインストールするようなものであるとのことでした。 トレイトの使い方や、機能について、ソースコード付きで詳しい説明がありました。 その他、名前空間など、PHPにおける使い方の説明もあり、充実していました。

オブジェクト指向の原則・法則・格言

いくつかのものが説明されていました。

  • デメテルの法則
  • 単一責任の原則
  • リスコフの置換原則
  • 開放閉鎖の原則
  • 依存関係逆転の原則
  • インターフェイス分離の原則
  • Tell, Don't ASK.

すべてインターネットで調べることが可能ですので、よかったら調べてみてください、とのことです。

画像

画像

吉本啓顕さん『EC-CUBEプラグイン機構徹底解剖』

画像

画像

EC-CUBEとは?

ECサイトを構築するための国内No.1のオープンソースです。2万店舗程いま稼働しています。

EC-CUBEがどのようなものなのか、デモを行います。 ポイント機能、買い物カートなど今通販サイトに有るようなものは ほとんどデフォルトの状態でそろっています。

EC-CUBEの構造

Apache、IIS、PostgreSQL、PHP、MySQLなどで動いています。

SCクラス、Pageクラス、Viewクラスの3つのコンポーネントからなっています。 MVCでいうModelがSCクラス、ViewがViewクラスになります。

EC-CUBEのプラグインでできること

EC-CUBEの本体処理に介入する
たとえばカートに商品を入れた後通常であれば配送画面に遷移するようなところを、見積もりページに遷移させるなど、本体処理への介入ができます。
テンプレートに変更を加える
これはイメージしやすいと思って、新しいボタンの追加、特定要素の表示を消すなどです。

フックポイントという介入できるポイントが各クラスに用意されていて、そこに処理を引っ掛けるイメージで EC-CUBEのプラグインを作成していきます。

プラグインの作り方

例えば、カテゴリコンテンツというプラグインを作ります。 商品カテゴリーごとにデータを持たせる。該当カテゴリが選択・表示されるときにデータを表示する機能です。

EC-CUBEの管理画面上からプラグインを追加します。 カテゴリ登録画面を開いてカテゴリのデータを追加します。

食品カテゴリにtestと表示している例
食品カテゴリにtestと表示している例

実装面では実行したい関数をメインクラスに作成します。 その次にplugin設定ファイルに関数名を追加するだけです。

画像

テンプレート変更の仕組み

Smartyのfilter機能を利用しています。SC_Helper_Transformクラスにテンプレート ファイルがわたってくるので、そこに変更を加えます。 またテンプレート描画サイクルは1回のみにすることにより、スピードを担保しています。 変更したい要素をDOM形式で指定し、要素の内容を入れます。

ルールだけ覚えてしまえば簡単にプラグインを作ることができます。

おまけ

EC-CUBE東京ユーザーグループという物があります。隔週で勉強会をしておりますのでよかったらご参加ください。 現在EC-CUBEのプラグインコンテストを実施中です。みなさんご参加ください。

そして、明日、新宿でハッカソンを新宿でやります!こちらもよろしくお願いしますとのことでした。

前田雅央さん『フラットなPHPからフレームワークへ』

画像

画像

フラットなPHPからフレームワークへ

簡単にいうとフラットなPHPは1ファイルのPHPのことです。 1ファイルからフレームワークにする過程でフレームワークとはどのようなものなのかをお話していきます。

list.phpをコードブロックに分けていきます。 コード中の半分ぐらいがHTMLでDB接続が1/3を占めています。 1ファイルのいいところはシンプルで簡単なこと。Badな所は拡張性が無いことです。

まず始めにView部分の分離を始めます。html部分のコードをrequireを使いファイル読み込みをするようにしました。 1ファイルだったphpファイルがhtmlとphpの2つに分割されました。 こうすることによって、テンプレート部分を変更するだけで、htmlをjsonやxmlに簡単に分けることができます。

アプリケーションの分離

ロジック部分にはデータベースへ接続、すべてのポストを取得するといった2つのモジュールをmodel.phpというファイルを作り シンプルに関数に抜き出します。 そうすることにより、controllerのlist.phpがモデルの読み込み、メソッドの実行、テンプレートの読み込みととてもシンプルな構成になりました。

画像

ここまでで、MVCはできてしまっていますがちょっと機能が足りないので、Viewのlayoutを作ります。 テンプレート内の静的、動的な部分を分けて、動的に変更したい所のみに変数を使います。 これでテンプレートの拡張性があがりました。

とは言いつつも、テンプレートエンジンを使った方が便利です。標準でXSS対策などのフィルタリングが入っていたり、 よりシンプルにコードを書くことができます。

では、新しいページを追加してみましょう。

今度はcontroller内でGETパラメーターを受け取って表示するページを決定します。 とは言いつつもshow.phpが加わっただけです。

このままではすべてのコントローラーでモデルをrequireしなくては行けないです。 ここで、フロントエンドコントローラーを作成します。フロントコントローラーはユーザーが 必ず通るファイルになるようにします。 この仕組みはほとんどのフレームワークで利用されています。

フロントエンドコントローラーを用意することによって、存在しないコントローラーが指定されたときに、 そのコントローラーが無いですよといった表示ができるようになります。

画像

まだここまでクラスを使っていません。実はクラスを使わなくてもシンプルに書ける。使いやすいかは別として フレームワークの出発点は同じです。

ライブラリを利用する

symfonyコンポーネントからHttpFoundation Componentを使ってみたいと思います。 HttpFoundation Componentを採用してるプロジェクトとして Symfony、Silex、Drupal8、phpBB4、ppi2、Laravel4があります。 FuelPHP2では使ってはいないですが、置き換えることができるようになっています。

それぞれのコードにHttpFoundation Componentを入れていきます。 大体のフレームワークではバッファリングしてレスポンスオブジェクトを表示するような実装をしています。

ここまでで、簡易的なフレームワークが完成しました。 ファイル単位で見ると分かりにくいですが、まとめるとMVCになります。

画像

画像

フレームワークを使うということはどういうことなのか?

やりたいことは変わらず、うまく使うことが大切です。 今日話した内容にもう少しコードをのせたバージョンとして、

  • フラットなPHPからSymfony2へ
  • フラットなPHPからSliexへ
  • フラットなPHPからSlimへ

があるので、こちらもご覧ください。

フレームワークに使われるのではなくて、使うことが重要です、とのことでした。

五月女雄一さん『速い!安い!うまい!ニフティクラウドC4SA!』

ニフティクラウドは、つい最近まで法人向けサービスでしたが、個人でも使えるサービスとなりました。 それが、ニフティクラウドC4SAとのことです。 気の利いたクラウドを目指しているそうで、ニフティクラウド自体は既に1200社以上の会社が国内で利用しています。

C4SAには「クラウド フォー スケーラブル アプリケーション」という意味が込められています。 ⁠アイディアをカタチに」がサービスコンセプトとなっており、インフラやサーバーを気にせずに ワンクリックで欲しい環境を作ることが可能です。しかもすべてブラウザ上で可能とのことです。 サービスを提供した後でもスケールアップ、スケールアウトが可能です。 さらに、離れたところでも画面を共有してオンラインチーム開発が可能とのことです。

アカウントはFacebookやtwitterなど、たくさんのアカウントと連動可能で、アカウント登録作業は不要です。 WordPressやBaserCMSなどたくさんのサービスが標準で利用可能で、すぐに立ち上げることが可能です。

会場では、実際にニフティクラウドC4SAを使用したFuelPHPのデモンストレーションも行われました。 PHPのバージョンも選択可能で、動作するPHPのバージョンもボタン一つで切り替えることが可能です。 開発はブラウザ上で可能ですが、WebDAVを使用して、ローカルでも好きなエディタで編集することが可能とのことでした。

利用価格は945円/月ですが、15日間は無料なので、じゃんじゃん試して欲しいとのことでした。 将来的には、AndroidやiOSのネイティブアプリの開発も実現したいとの目標も発表されていました。

画像

画像

柄沢聡太郎さん『Git x Pull Request ~ チーム開発最終奥義』

画像

画像

Gitの話

GitのPull Requestの話をもうちょっと掘り下げた話をします。 今日の話のメインはGitを使おうと思っている人、特にチームで使おうと思っている人を対象にしています。 実際のクロコスでの事例を交えてGitのことを紹介していければいいと思います。

会社設立時からGitを使っています(会場では半分ぐらいの方がsubversionユーザーでした⁠⁠。

Gitの移行について考える

いわゆるGitnativeじゃない人がほとんど。そういった場合ほとんどコマンド単位で考えようとしてしまう。 Gitへの移行はsvnに対応するコマンドを覚えることではなく、Gitを最大限活用することを考え業務フローを変えていくことです。

  • ローカルで気軽にコミット
  • ローカルで気軽にブランチを切る
  • 賢く、高速なマージ

Gitのブランチ戦略

どのようにブランチを切っていて、開発、リリース、緊急対応をこなすか? ブランチ戦略のベストプラクティスの一つにA Successful Git Branching Modelというものがあります。

このブランチ戦略に登場するブランチ名は5つ、master、develop、release、feature、hotfixです。 ただ、このブランチ戦略は一例で、クロコスではこれを開発メンバーに合うようにカスタマイズして使っています。

画像
master
常に、最新の安定したソースコードが手に入る(リリースされたコード⁠⁠。
全くバグや修正を出さない開発ができればこのブランチだけで成り立ちますが、現実的に無理です。
develop
このブランチで日々の開発をおこないます。
masterに取り込めない日々のコミットを入れていくブランチになります。
release
リリース前の確認を行う必要があれば修正する。
リリース候補といったブランチを用意し、リリーステスト待ちのブランチと開発用のdevelop用のブランチと分けて、日々の開発とリリースプロセスに入る人が別々の人であっても並列で進めることができるようになります。
feature
複数の異なる機能を平行して開発を進める。
developブランチから特定の機能だけにフォーカスしたfeatureブランチを作成することによって、機能ごとに並列に開発することができます。
hotfix
featureまでで基本的なものはすべてカバーされているのですが、例えばいまリリースしているものに緊急対応が必要な時にhotfixブランチを切ります。ただ、ブランチが複雑になるので始めから考えないほうがいいかもしれないです。

gitflow

nvie氏謹製で、A Successful Git Branching Modelをうまく回すようなツールが有ります。 クロコスではそれをカスタマイズしたgit-dailyというtoolを使っています。

ここからPull Requestの話になります。

画像

複数人で開発するものであれば、⁠他人が書いたコード」を変更しなければいけないタイミングが必ずあります。 いろいろなやり方があると思いますが、例えば

  • Aさんにお願いする依頼タイプ。
  • 完全分離増殖タイプ、ある人が機能をすべて個人が作成するタイプ。一番カオスを生むタイプだと思います。
  • 勝手に変更タイプ、他人のコードを勝手に変更してしまい、まれによくあります。

最後に

  • Pull Requestタイプ

自分のコード変更部分を送って確認してもらうタイプ。Pull Requestでこういう機能を追加したくて、こういうコードを書きました。 というようなコミュニケーションを取ってからコミットを行う。これをシステムとして提供しているのがPull Requestになります。

先ほどのGitのブランチ戦略で、mergeするときにPull Requestをするようにします。 細分化されたコードレビューを開発に取り入れることになります。 小さなpatchのやり取りなどがすべてシステム上で見ることができます。

画像

クロコスでGitLabでの開発では必ずレビューを通ように2人1組のチームを組んでます。 大きなメリットとして、自分が担当以外の部分の実装・仕様の把握ができるようになります。 さらに誰がどういうようなコードを書くのかが分かるようになります。 コピペ元ごと殲滅する機会ができ、⁠コピペ元もなおしておいて!」と言えるようになりました。

  • できるだけ細かくリリース
  • 小さめのチームに分割する

gitを使った開発はsvnを置き換えることではなく開発フローを置き換えることだと思います。 ぜひPull Requestを導入して欲しいなと思います。

あと誕生日なので僕にプレゼントをください、とのことでした。

画像

Makoto Kuwataさん『PHP5.5新機能「Generator」初心者入門』

ジェネレータとは関数の一時中断と再開ができる機能のこと。 まず最初に、ジェネレータについて、RPGにそって説明がされました。

ジェネレータとは

  • ジェネレータ⇒セーブ機能
  • ジェネレータ関数⇒ゲームシナリオ
  • ジェネレータオブジェクト⇒セーブデータ
  • yield文⇒セーブポイント

ジェネレータを使うとどんなメリットがあるか

次に、ジェネレータを使った場合のメリットについての説明と続きます。

  • ループ処理から、汎用性の高い箇所だけを切り出せる
  • ひとつの大きなループを、複数の小さなループに分解できる
  • メモリ消費量が少ない
  • データを読んだはしから処理できる

更に話はジェネレータの詳細へと続きます、ジェネレータオブジェクトの$->send()を使った双方向の受け渡しの話や、非同期処理についての話がされました。

1つの大きな処理を小さな処理に分割することでコードの再利用性も上がるのではないでしょうか。 また、メモリの消費量をおさえられる点はビッグデータを扱う昨今の開発では、大きな利点と言えますね。

画像

画像

新原雅司さん、諸戸圭吾さん、向井賢一さん、保科一成さん、郡山昭仁さん『フレームワークアップデート』

8分で分かる最近のCakePHP

Kansai PHP Users Groupの新原 雅司さん
Kansai PHP Users Groupの新原 雅司さん

今のCakePHPは?

2.2.2が最新版、PHP5.2.8以上対応、PSR-0に合わせあたパス構造。 中身自体は結構変わっているのですが、アプリケーションに影響が出ないようしています。

2.2の新機能

  • ビューブロック、継承
  • Event System
  • Hash
  • ModelValidator

次のcakePHPは

2.2.3が10月に予定、2.3ブランチも開発中。

さらに次のcakePHP3

PHP5.4以上、Modelがオブジェクトを返す、namespace、traitsの利用、2013/N登場予定?

まとめ

  • これから使うなら最新版を(2.2.2)
  • cookbookを参考に
  • もっとCakePHP2を知りたい人は・

CakePHP2の本が出ます!!

2012年9月29日にCakePHP2実践入門が出ます。

CakePHP公式サイト

画像

Symfony

Symfonyユーザー会 諸戸圭吾さん
Symfonyユーザー会 諸戸圭吾さん

Symfony公式サイト

2.0から2.1のアップデート

  • パッケージ依存の管理がComposerになりました。
  • Composerでコマンドラインでのインストールが可能になりました。
  • app/AppKernel.phpに2つのバンドル追加
  • web/app.php, app_dev.phpの追加

    画像

Symfonyについて

php5.3.3以上で動作。Twigを標準サポートしている標準的なMVCのフレームワークです。 yaml形式でrouting設定を書き対応するメソッドを書いている非常にシンプルなものです。

Symfonyを始める時の情報源として、ドキュメントポータルが有ります。 また日本のSymfonyコミュニティもあり、10月に翻訳温泉ツアーも予定されています。

画像

FuelPHP

FuelPHP.jp 向井賢一さん
FuelPHP.jp 向井賢一さん

FuelPHP公式サイト

Fuelphpの特徴

なんと発音方法で2大派閥があります。 ⁠ヒューエルピーエイチピー」「ふえるピーエイチピー」があります。

勉強会でアニソンを流したところ発表より盛り上がってるんじゃないか? というぐらい盛り上がりました。 アニソン好きが多いのがFuelPHPです。

画像

東京、大阪と勉強会が定期的に開催されています。 また日本語の情報量が8ヶ月間で820倍に増えてます。

つまり、もっとも注目されているフレームワークです。 PHP5.3以上を対象にし、 複数のフレームワークのいいとこ取りをした作りになっています。

3行のコマンドでインストールすることができます。

MySQL、MongoDB、Redisなどメジャーな環境をサポートしています。 FuelPHPは日用品で小規模開発に向いてます。

画像

Yii Framework

保科一成さん
保科一成さん

Yii Framework公式サイト

Yii Frameworkをご存知の人?(会場のほぼ6割の手があがりました)

日本のgoogleトレンドではFuelphpにダブルスコアで負けていますが、 gitレポジトリのウォッチランキングでは上位につけており、また世界で流行っている。

日本語ドキュメントもそろっています

YiiJan.orgはじめとした、 Yiiのフォーラムや独自の日本語ドキュメントやTipsを扱うサービスができました。 初めてでも安心してお使い頂けます。

後発のフレームワークなので他のフレームワークのいいところを取り入れて洗練されたフレームワークです。

PHP5.1〜対応しており、標準的なDBは大体サポート。 公式のベンチマークではCodeigniterの3倍。ただしhello worldに限る。

特徴

  • 設定より規約
  • ドキュメントが充実
  • シンプルな設計

機能つまみ食い

gii
コードジェネレーターです。GUIをもっていてdiffを確認可能です。
zii
10行程のコードを書き、リストが生成される。簡単です。

Yii2

PHP5.3.8〜対応が発表されましたが、リリースは未定です。

これからもYiiから目が離せないですね。

画像

画像

BEAR.Sunday

郡山昭仁さん
郡山昭仁さん

BEAR.Sunday(google code)

PHP5.4 専用のフレームワークです。 BEAR.SundayではAPI駆動開発を採用しています。

デバッグ画面にはどのリソースがどのAPIを利用してるかが表示さています。 またオンラインでのソースコード、テンプレートの編集ができます。

apiというコマンドを利用してデバッグ画面のAPIを叩くとコンソールからjsonを 取得することができます。

画像

Hypertext-Drivenとはリソースとリソースのすべてがつながっていることです。 post、put、optionsメソッドがすべてapiになっています。

httpはトランスポートプロトコルではなくてアプリケーションプロトコルなのです。

apiは単にデータを返すだけでなく関連性も利用できるようになっています。 apiの認証、validation、Logなどの機能をbootstrapの設定だけで実装できます。

画像

小さな個人作成のフレームワークがPHPカンファレンスで、そして有名フレームワークと肩を並べて 発表できることはすばらしいと思います。

画像

画像

t_ishidaさん『ユニットテストに入れるためのクラス設計』

日頃UnitTestをしている人には当たり前の話しかしませんとのこと。色々理由があってできなかったりするので、聞きたいところです。

「テストしてますか?・」

ざわざわ。

これがPHPをとりまく環境を物語っているように思えます。 単体テストをやりつくした後に結合テストをするべきですとおっしゃってました。なので小さく小さくとのこと。たしかにその通りです。

以下箇条書きになりますが、説明された内容の抜粋です。

UnitTestの考え方は「単体での確認」ができればよい。単体なので、本当に小さくてよい。読んでいるメソッドの先の正しさは気にしなくてもよい。

デメリットとして

  • テストを作るのには時間が掛かる
  • 場合によってはテストのためにクラス設計をゆがめる必要がある
  • 必ずしも、それで全てのバグを検出することができないので油断は禁物。

画像

画像

UnitTestのためのクラス設計とは?

強い依存を徹底的に排除する

  • クラス間の依存
  • 外部システムへの依存 複雑度を下げる
    ←テスト自体も複雑になる。何をテストしているのか分からない状況もある。

モックをつくろう!

  • そのクラスのように振る舞うダミーのこと
  • ダミーで入力を検証する
  • ダミーで出力を検証する

モックを使うということはオブジェクトを差し替えるということ なのでできないこともある。

  • メソッド内でnewしていたら差し替えられない
  • staticメソッド呼び出しは差し替えられない
  • 組み込み関数は差し替えられない
  • finalなクラスも差し替えられない

クラス間の依存

  • コンストラクタやメソッドの引数でオブジェクトを渡す
  • セッターで上書き

プロキシパターンで回避する。

例えばDBを読むようなメソッドの場合は、文字列を受けたらArrayを返すだけ。ファイルを読むようなメソッドの場合はパス文字列を返すだけ。

複雑度を下げる

  • ifの入れ子は分割する。でないと、
  • 操作と操作を分ける。一つのクラスは1つの振る舞いしか持たない
    • テストを書いている時間
    • 上司が時間をとらせてくれない
    • 複雑すぎて書けない→メソッドを分解
    • あとから書く→絶対に後で書きません

とにもかくにも盛りだくさんな内容でした。 tech.aainc.co.jpにて資料が配られるということなので、そちらで詳細は確認しましょう。

浅見城輝さん『PHP on Azure』

画像

Azureについて、イマイチ知らない記者にとっては興味深い内容です。 ⁠アンチMicrosoft、アンチWindowsだったのに・・」という爆弾発言で始まりました。

PHPを利用できるサービスとして、Webサイト、クラウドサービス、仮想マシンがあるらしく、今日話される内容は仮想マシンWindows AzureでLinuxを用いることができる、さらにその上でPHPをうごかせる、というお話。 ・これは妙は話ではあるのですが、クラウドサービスであると考えれば普通なのかもしれません。

DEMOが始まりました(あ、講演者の方はMacですね・・⁠⁠。

画像

インスタンスはあっという間に作られました(トラブルでムービーだけでしたが⁠⁠。 これだけ簡単なら試す敷居も下がりましたね! 90日の評価版も有るとのことなので一つの選択肢として考えてみたいと思いました。

ライトニングトーク

LTは同時開催のWordCamp Tokyo 2012と共同で行われます。いつものPHPカンファレンスのLTとはちょっと違う雰囲気です。

Zenback loves WordPress by kaoritter

画像

Zenbackのご紹介でした。 Google検索の検索候補より、⁠Zenback+うざい」が上位に出ていることが判明!うざくなくなるよう頑張ってます。とのことでした。検索候補には他にも「Zenback+WordPress」も上位にあがっており、55万件も検索結果が出てくるそうです。 ワードプレスユーザーに検索されてるZenbackは、⁠ブロガーのブロガーによるブロガーのためのツール」を目指しているそうです。ぜひ皆さんも、検索してみてくださいね。

FuelPHP + Pagoda Box by omoon

画像

FuelPHPとPagoda Boxに密かな共通点があるのをご存知でしょうか? その共通点とはロボットであるとのことです。 FuelPHPがブリキのチム、Pagoda Boxにはハルというロボットがいるそうです。 なんと今回、新しいロボットが登場することが判明!その名もアルフレッド! 執事らしいのですが、まもなくその姿を見せるとのことでした。 その他、自作サービスとして、Instagramenのご紹介をされていました。

Wordpressの学生コミュニティを作りたいです。 by Tomoyuki koyama,shuma yoshioka

画像

WordPressが大好きな、中3生お二人が登場!

Tomoyuki koyama
WordPressが好きな中3
部活のサイトとか
shuma yoshioka
PHPが好きな中3

地域のコミュニティはあるのに、学生のコミュニティがないのはなぜ?と思ったお二人。 ないんだったら、自分たちで作っちゃえ!と活動しているそうです。 コミュニティ名はまだ決まっておらず、絶賛募集中だそうです。 U-18あたりをメインターゲットに考えているそうですが、大学生も入れるべきかどうかは検討中とのこと。 学生目線での活動を考えていきたいとのことでした。

現在、メンバーを募集中とのことです。

http://dottab.com/wpstudents

Reactor パターンと React by @yuya_takeyama

画像

PHPスクリプトで並列処理するのに、便利に使えるReactPHPの紹介。 実際によく使われる関数を例に上げ短い時間で詳しく紹介されていました。 並列処理の複雑化に困っている方はReactPHPを使ってみてはいかがでしょうか

WP slabText

画像

WordPressのプラグインを紹介されていました。 slabTextプラグインはテキストのサイズを調整し、両端をピシッと揃えるプラグインです。 このプラグインでは、記事ごとにデザイナーでなくても、画像を使わずに見出しのスタイルを調整できるのが売りだそうです。 その他、レスポンシブWebデザインに対応し、適用する範囲/記事を指定可能とのことでした。

PHP祭り入門 by cakephper

画像

毎年恒例となりつつあるPHP祭り。今年は11月3日〜4日にかけて、福岡で開催されるとのことです。 ちなみにPHP祭りとは、30時間かけて行うオールナイトハッカソンイベントです。 平行して講演等も行われますが、目玉は2日目午後からスタートする大LT大会!テンションマックスで行われるこのLT大会は例年大盛り上がりを見せるとのことでした。現在、チケット発売中とのことでした。

WordCamp初参加の.comユーザー by summerfield84

画像

Windows Live Spaceブロガーだったsummerfield84さんが、なぜWordPressに移行したのかをお話したかった模様です。 きっかけはアクセス情報の削除だったようですが、ものすごく詳しい部分は残念ながら時間切れでよく伝わってきませんでした。 なお、PHPカンファレンス、WordCampTokyo終了後に、一緒にスカイツリーに行きましょうと熱心に会場の皆様をお誘いしていました。

php-timecopを実戦投入してみた by hnw

画像

イベントの開発をしている際に「イベントの開始時刻まではイベント内容を表示しない」などのタイマー処理が正しく実装できているかの動作確認に便利なツールphp-timecopの紹介です。 GUIからすすめる時間を決めれる、大変便利なエクステンションとなってます。お困りの方は是非使ってみてはいかがでしょうか。

デザイナ&エンジニア交流会 by rechiba3

画像

@rechiba3(てぃば)さんによる、1泊2日山籠もり合宿のお誘いが熱く語られました。 場所は、八ヶ岳。南アルプスを見渡す大パノラマの中で、モノ作りをしようというプライベートデスマだそうです。 新宿から直行バスで2時間20分!往復4,100円でいけるというこの合宿、皆さんも是非いかがでしょうか。 詳しい場所は現在調査中、時期は来年の5月11日、12日あたりを検討しているとのことでした。

やはりお前らのMVCはまちがっている。 by 田中 康一

画像

昨今のMVCの実装はWebに合わせていくうちに正しい形で機能しなくなってきている、⁠やはりお前らのMVCは間違っている」という内容の発表。 過激且つ的確に突っ込んでいました。 発表のスライドで、所々にカットインする「m9(^Д^)⁠⁠。会場の笑いを誘っていました。

はてなTwoの紹介 by カイ士伝

画像

映画「桐島、部活やめるってよ」をネタに、⁠桐島、ブログやめるってよ」をテーマにお話する予定だったそうですが、 映画のネタバレがあるということで、後日ブログ上にて公開すると言うことで、予定を変更してはてなOneに関する話題となりました。

はてなOneは、はてな版Facebookとでもいうべきサービスでしたが、初期のバグや重い動作が影響し、ユーザーがほとんどいないサービスとなってしまっていましたが、ついに先日はてなよりサービス停止の発表がありました。同様のサービスを探したそうですが見つからず、ないなら自分で作ってしまえと作ったのがはてなTwoだそうです。はてなTwoはWordPress+P2とはてなスターを組み合わせたサービスとのことでした。

一億総PHPer計画 by 岡本雄樹

画像

イラストでよくわかるPHPの本のご紹介です。 一億人のぺちぱーを要請するには何が必要かを考え、そのための教科書を作ったとのことです。 イラストいっぱいで、なんと第1章はまるごとWeb入門と題して、WebページがHTMLやCSS、JavaScriptなどから成り立っていることを説明しているそうです。そして、DB関係は潔くカット!超初心者にぴったりの教科書となっている模様です。価格も1,890円と頑張っており、皆さん弐千円札を握りしめてぜひ買いにいってほしいとのことでした。

WordCamp Osaka 2012開催のお知らせ by rie05

画像

最後の最後のLTは、WordCamp Osaka 2012開催のお知らせでした。 WordCamp Tokyo 2012が文化祭なら、WordCamp Osaka 2012は祭りをイメージして開催されるとのことです。 期日は、11月3日(土)、天満研修センターにて行われるとのことです。 入場は無料!懇親会も予定されているとのことでした。 http://2012.osaka.wordcamp.org/

クロージング

画像

WordCamp、PHPカンファレンス両実行委員長の挨拶で、本日のイベントの幕が下ろされました。

どちらのイベントの参加者・スタッフのみなさまとも、お疲れさまでした!

おすすめ記事

記事・ニュース一覧