PHP カンファレンス 2009 テックデイに参加してきました

PHP カンファレンス 2009
テックデイ

昨日のビジネスデイに引き続き、行ってきました。

#pcj09

2009_phpcon_enter2009_phpcon_first2009_phpcon_elephpant

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

・「なんともう時間がない」

〆として最高でした。