第52回PHP勉強会@関東

第52回PHP勉強会@関東
2010/05/11 19:30
Gree株式会社セミナールーム ヨセミテ
http://events.php.gr.jp/events/show/96


会場がちょうどGREEでやっていたので、参加してきました。
セッションは3つですが、どれも面白い内容でした。


人数は30人くらいなので、部屋の広さ的にかなり余裕があります。
会場が必要な場合は、GREE社員が参加していて、部屋が空いていれば利用できる、そんなシステムらしい。
写真は始まる前の会場の様子

PHPで作ったクロスプラットフォームサービスについて by twkさん in 第52回PHP勉強会@関東

あたまソフト株式会社
クイズサービスを作っている会社。今のところ、社員2名。

クロスプラットフォームサービスの構造

いくつもの環境向けにアプリケーションを公開している、ということで、そのアプリケーションの話。

モジュールの構造

アプリケーションをレイヤーで分けて、環境依存のレイヤーで、いくつもの環境に対応しているらしい。
Javaなんかだと、よくある作りだと思います。

環境依存モジュール - デフォルトモジュール - モデル・サービス - DB


あ、これは偏見ですけど、PHPだとこういう作りはイニシャライズコストが高くつくので、PHPだとあまりやらない、と思っていた頃もありました。
普通にやるっぽいね。

robot.txt、sitemap.xmlなども動的に生成

環境への依存性を少なくするため?
サイト毎にPHPのコントローラーを用意して、切り分けている。

バッチ処理

cronからwgetを叩いている。

ソース管理

Subversionを利用

開発環境

開発環境は、ローカルのノートPCを利用
ステージング環境は、VMWareを利用して用意。すごく重い。

ディプロイ

Capistranoを利用して、複数サーバーにコードをdeployしている。
http://www.capify.org/index.php/Capistrano

へー。これは知らない。

全文検索

Apache Solrを使用している。
http://lucene.apache.org/solr/

モバイルキャリアの公式サイトになる方法

公式サイト申請
  • 企画書を提出する
  • 企画が通ると、公式サイトになれる。
  • KDDIソフトバンクを先に提出するべき
  • ドコモの公式サイトにはなりにくい。なぜ、駄目かも教えてくれない。から直せない。
障害時
  • 障害発生時は、キャリアから連絡があったりする。

SNSアプリ

mixi、モバゲーに数アプリ提供している。

いろいろ

アクセスを裁ききれなくて、mixiからJoin停止処分などの制限受けたりした。

  • 帯域制限
  • Join停止処分
サーバーをAmazon EC2に移転
  • たまにトラブルあるのが問題
  • SimpleDBが役に立っている。

クイズシステムの今後

  • ソーシャルアプリとか進める。
  • 5/10に発表された、GREEコネクトの第一弾パートナー募集は落ちた。

感想

オープンソーシャルをやられている方なので、
仕事が残っていなかったなら、いろいろ話を聞いてみたかったですね。
mixiアプリとか、モバゲーアプリのオープンソーシャル非標準APIあたりの感想とか。

DBアクセスライブラリ - ChainRecord by hirakiucさん in 第52回PHP勉強会@関東

  • ActiveRecordを参考に作成。
  • ORMで独立でかつ、簡単に使えるようなライブラリに。

特徴:処理をChainできる。

$book->find()->filter->each()->save()


たぶん、Seasarとかである「流れるようなインターフェース」の考えに近いのだと思います。

特徴:テーブルの定義は自動的に読みにいく

コンストラクタで読み込んで、キャッシュする。

特徴:MethodChain

処理を連結して記述できる。
会話のように処理を連結できるので、わかりやすくなる。

特徴:複数データベースに対応

スケーラビリティになるように。
拾ったデータをマージして、扱える。

今後の目標

感想

こういうライブラリ、嫌いじゃない。
主流になってくれるものが少ないのが、あれですけど。

PHPでバイナリプログラミング by yoyaさん in 第52回PHP勉強会@関東

http://d.hatena.ne.jp/yoya/20100511

string型でバイナリ処理する

String関数をバイナリ処理に利用できる。

\0

\0が入ってきても平気

8bitスルー?

8bitスルー

TLC構造、ディレクトリ構造

バイナリはたいてい、TLC構造か、ディレクトリ構造になっているので、
これらの構造を知っておくと、バイナリはたいてい処理できる。

ふむふむ。覚えておこう。

感想

PHPの経験が薄い自分は、普通にバイナリ処理できると思っているよ。
そうか、PHPには苦手な分野なんですね。
なんか、この苦手な分野でも無理矢理やる感が、Vim Script界に似ている気がします。


しかし、この手法、PHP6の文字列処理の仕組みによっては駄目になるかも。
PHP6は、どうなるんでしょうね。


このブログではあまり分量さかれていないけど、今日のPHP勉強会で一番おもしろいセッションでした。
こういう狂った感のあるセッションは良いですよね。大好きです。