PHP カンファレンス 2009
テックデイ
昨日のビジネスデイに引き続き、行ってきました。
#pcj09
9月5日(土)
大田区産業プラザ PiO
以下、会場でのメモをそのままアップするので
【加筆・リンク追加・文言修正する可能性があります】
去年と同じく、蒲田のPiOにて。
今年は懇親会にも参加できてよかったです。
普段はPHP触らない人や初参加の方が多いのはよいことですね。
色々なお話が聞けて刺激になりました。
昨日よりもMac率・iPhone率が多い多い。
Macだらけの職場にいるので参考になります。
スタッフの皆様、
スピーカーの皆様、
スポンサーの皆様、
参加した皆様、
お疲れ様でした!
—————–
オープニング
日本PHPユーザ会・安藤 祐介
事前アンケート結果
PHPカンファレンスに
参加したことがある
31%
参加したことがない
69%
APCについて
使用したことがある
24%
知っているがない
30%
知らない
46%
使っているフレームワーク
CakePHP 213
多くの人はフレームワークを使ったことがない
cakeとZendとSymfonyの人気は
ここ数年変わらず。
今回は海外ゲスト多数呼んだ!
知らないものを多数取り入れて日々の生活に役立ててください。
—————–
基調講演
日本PHPユーザ会・廣川 類
PHPの今とこれから
14年前
PHP1
PHP4
2000年
mbString統合
PHP4.1
4.4
と
5
で分岐
4.4は4.4.9でFIX
PHP5
WebDB
XML
PHP5.1
実行速度改善
PDO
PHP5.3
名前空間
PHP6.0
Unicode対応
レガシー機能削除
もしかしたら
PHP5.4
PHP5への移行
4.4.9の脆弱性のリスト提供と
SRA OSS による有償サポート
PHP5への移行が遅れた理由
4の完成度が高い
移行する理由がない
新機能へ興味がない
セキュリティ
・アプリケーション固有の脆弱性
・設定に起因する脆弱性
・システム固有の脆弱性
攻撃手段は毎日進化するので情報収集するしかない
基本を守る
最新の情報を見る
PHPのコードの品質は高い
コードカバレッジ→テストされていないコードには欠陥がある
PHP5.3
PHP6までのつなぎ
Unicode
レガシーコード廃止
ガベージコレクタ改良ー>メモリの使用効率のアップ
Late Static Call
動的変数
名前空間
国際化
Collator(文字列比較)、数値フォーマッタ
mysqlnd MYSQLドライバー改良
OpenSSLエクステンション
国際化・Unicode化
書き直しの範囲が大きい
パーサ
DB拡張
DB接続文字コード
Safe_mode
レガシーコード削除
PHP6ではUTF-16
PHP6ではmbstringの機能の多くがネーティブ実装
日本語対応は十分か
絵文字の問題
文字コード検出→不十分
正規表現
oniguruma(鬼車)拡張が提案中
mbstringは不要になるか
→残す。
ZEマルチバイト、関数のオーバーロードは削除
ICU版のmbstringを提案中
PHPが成功した理由
・コンセプト(初心者に優しく、現実的)
・コミュニティ
常に改善・改良を求めることで
オープンソースの活力が維持される
新たな開発者に参加してもらうことが必要
(若い人)
Google Summer Code
PHP勉強会
改善/機能強化の提案、貢献の方法・RFC
PHP本体
クラス・エクステンション
ドキュメントの整備
—————–
台湾PHPコミュニティの日々
Taiwan PHP User Group・江 明宗
Ubuntuを使っていた模様。言語は中国語(?)。
・PHP技術者の不足
・ハードウェアに強いがソフトウェアは弱い
他国、しかもアジア圏のIT関連の技術まわりについてお話が聞けたのは貴重かも。
—————–
APCによるハイパフォーマンスの実現
Facebook,inc・Brian Shire
Facebookの中の方
Mac使ってました。
Vim。
はやいなぁ・・・。
APCはPHPのコンパイルを行い
キャッシュして高速化します。
ソース
↓
Lexerと呼ばれる空間解析
↓
パーサ
↓
オプコードが生成されて実行される
↓
エクステンションによる例外処理
インストール
pecl install apc
キャッシュにはいくつか種類がある
apc.stat
ファイルを有効化するには
apacheの再起動が必要
現段階は実験段階です。
なんでも高速化するものではない。
またキャッシュになにも入っていなければ
またコンパイルするので
速くなりませんよ。
apache再起動の時点でキャッシュを生成する
もうひとつのキャッシュは
ファイル、変数を
キャッシュする方法
Lagy loading
複数のきゃっしゅして
おくこともできるので
ディレクトリごとに
apcのキャッシュを使うか使わないかを
選択することもできます。
会場でAPCを使っている人は少数。
高速化がうまくいかないときは
ほかのドッキングや設定を試してみてほしい。
PHP6に取り込まれるとかいってたけどどうなん?
↓
PHP6以降に標準で搭載されます。
CakePHPと併用して高速になったよ!
開発に関して
何人か参加してるみたいだけど
どうやってコンタクトとってるの?雰囲気教えて。
↓
準レギュラーが3人
やりとりはメーリングリストだね。
バグレポートでも活発に活動しているね
最初のオススメは
スタックのオプション
ドッキングメカニズムの設定
ユーザーの独自キャッシュ
だね!
導入にオススメのサイトってあるの?
↓
基本的にPHPを使っていればおk。
大規模なコードベースだったらなのこと効果は大きいだろうね。
FaceBookだとリアルタイム性が重視しているけど
あまり変化がないようなサイトだと効果は感じられないかもしれないね。
ほかのキャッシュシステム使ってるけど
乗り換える場合は?
↓
よくテストして。
コードの構造によってはバグがでるかも。
動かないようだったらおれに教えて!
サイトをはやくしたいなんて要望がまずでてくると思うけど
この点にとか調査したほうがいいのではないかと
アナウンスをしてほしい!
↓
おk。
FaceBookの雰囲気教えて!
厳しい要求があるけど
クリエイティブ
社員1000人の中で
PHPのエンジニアは300人
言語はそのほかもできるよ!
半年前に導入試験
ZendOptがうまく動かず
↓
うまくいかないことになっております。
新しいやつだったらうまくいくよ!
—————–
PHP を見える化する
新原雅司
~PHP Visualization~
findtwitterつくった。
会場でガンダム見た人は3割。
↓
見える。僕にも見えるよ。
PHP 5.2.1
struct
zval struct
Profile
Xdebug
WinCacheGrind
Webgrind
XHProf
Function Trace
そしてブルースクリーン
—————–
CakePHPストーリー
CakePHPの何か安藤 祐介
RedmineのPHP版
↓
CandyCane
CakePHP経験者
2/3
フレームワーク未経験
ちらほら
生産性の向上と
保守性の向上
コントローラー
component
モデル
Behavior
ビュー
Helper
Plugin
CakePHP2 (php5 only)
Cake3 (php5.3~):名前空間利用
CakeMatsuriやるよ!
すばやく快適な開発
オープンマインドでレベルアップ
—————–
PHP を「いじり」倒す 10 の方法
moriyoshi
PHPはテンプレートエンジン
SAPIモジュール
ZendEngine
Extensions
TSRM
ZnedEngineの構造
レクサー解析
Parser
Opcode emitter
zend_op
zend_op_array
znode
ここまでコンパイル
Virtual Machine
改造
–enable-debug つきで configure
Boost.PHP
C++
スライドが公開されました。
http://d.hatena.ne.jp/moriyoshi/20090905/1252159467
—————–
Q4MとFlareを使ってスケーラブルなサービスを作る!
漢祐介(nowel)
元Seaserの人
グラフ作成
vizoo
グラフの表示部分はswf
Q4Mとは
↓
MySQLをつかったメッセージキュー
キューをInsertで入れる
参照はSELECT
APIのソキュメントはない
Flareとは
Webアプリで高負荷になりやすい箇所
DBに対してやりとりが多すぎるから。
Q4Mで
1台でなんとかする
Webさーばががんばる
・めーるを投げたり
・PDFをつくるとか
・xlsをつくるとか
スケールアウトしにくい
Session
これをSymfonyで実装
Flareをsymfonyのstorageとして実装したお話
—————–
Symfony, a web framework for professional websites
Fabien Potencier
プレゼンは英語で翻訳だけど
スライドが日本語なのがすばらしいです。
PHPによるMVS(フレームワーク)
yahoo.comのbookmark
yahoo.comのAnsews
del.icio.us
もSymfonyで構築されている
Daylymotion
プロのためのフレームワークです。
・Symfonyはまとまりがあるが、個別でも使えるクラス郡だ。
※スタンドアローンでも使えるコンポーネントも公式にあります。
YAML
Dependency Injection
Event Dispatcher
がすでにリリース
Symponyは複数のコンポーネントから成り立っています。
テスト
ブラウザのエミュレーションを使用して
をコマンドラインから行うことができます。
APCとの相性が悪くない
↓
メモリ管理を設定しているYAMLをno-cacheに設定してみてー。
—————–
LT
印象に残ったものを。
PHPの全バージョンの挙動を試す
hnw
museum.php.net
に全バージョンのphpがあるよ!
PHP4の現状とセキュリティパッチサービス
大垣靖男
・まだ4でやってる現場に遭遇したことがないなぁ・・
初めてのPHP Extension
yokkuns
・「なんともう時間がない」
↓
〆として最高でした。