PHPカンファレンス2008のメモ

PHPカンファレンス2008に参加したので、今さらながらメモの内容をさらしておく。割と個人用。

PHP 5.3

  • ラムダ関数とクロージャ
  • late static binding
  • dynamic static call
  • phar
  • mysqlnd
  • namespace
    • IDEで自動補完とかほしくなりそうな予感
  • PEAR::PHP_CodeSnifferっていうのがある

ぐるなび

  • マスタPostgreSQLOracle/XMLに移行
  • 検索用PostgreSQLMySQL/全文検索エンジンに移行
  • PEAR::DBとかMDB2使ってる、あとSmarty
  • PHP4/5が混在した環境、5は10%ぐらい
  • PHP5への移行はリファクタリングしつつやってるので遅れ気味
  • Zend Frameworkをライブラリとして使ってる、マルチバイトの扱いでバグあるけど
  • SimpleXML使ってる
  • 拡張する、という使い方
    • SNSならOpenPNEをベースに必要な部分を拡張
  • 国際化
    • 上海進出時は現地でJavaで作ってた
      • 中国だとPHPエンジニアが少なかった
    • PHPに移行中
  • アクセラレータは特に使ってない
  • DBのバックアップはdump→NAS→テープ
  • NASにモジュールをデプロイしてる
    • NASを各サーバでマウント
    • NAS自体が分散構成になってる

楽天

  • DBはOracle/MySQL/Senna
  • JavaTomcatとかも使ってる
  • 規模
    • 150以上のアプリケーション
    • 800台以上のサーバ
    • 5000万PV/日
    • 1000人以上のエンジニア
  • PHPアプリの監視ツール持ってる
    • PVとレスポンス時間が計測できる
  • 独自フレームワーク時代
    • Mojaviっぽい構成だった
  • Mojaviの導入
    • APCも併せて導入
    • コードジェネレータの開発
    • PHP4での開発スタイルを確率
  • PHP5
    • 独自フレームワークで知見を蓄積してからフレームワークを選定しようとしてた
    • symfonyが社内標準に
      • Mojaviに近いので既存資産が生かせる
      • ケルトン生成機能もいい
      • 評価: 高機能だけど学習コストがかかる
      • Propelは様子見
      • プラグインは各所で対応(実験段階)
      • 小さいサービスを作るには大げさすぎ
    • CakePHP
      • 試験的に利用中
      • 学習コスト少ない
      • 比較的軽量
      • 大規模で使えるかどうか?
      • ライブラリとか未整備
      • 既存資産(Mojaviで使ってたやつ)が生かせないのではないか
      • Railsとどちらを選ぶかという兼ね合い

サイボウズガルーン

  • cyDE2
    • MySQL/PHP4/Smarty
    • パッケージなのでサーバ構成を柔軟に変えられるようになってる
      • お客の都合に合わせられるように
  • ユーザに設定させない、ということ
  • スケジューリングサービス
  • CSRF対策
  • メッセージの国際化
    • ロケールごとのリソースファイル
    • メッセージ取得用のSmartyプラグイン、cb_msg
    • cb_msgが含まれたテンプレートからジェネレータでメッセージ展開後のテンプレートを生成するようにしてる
      • メッセージリソース展開の負荷軽減
    • リソース管理ツール作った
      • 画面の表示文字列とメッセージキーを一対一で表示
      • 翻訳する人が便利
      • 編集できる機能は持ってない