PHPの今とこれから2007 - PHPカンファレンス2007

Netcraft調査の言語シェア

  • PHP 34%
  • ASP 21%
  • その他 0%
  • 不明 43%

PHPのバージョンの変遷

主に使っているPHPのバージョンを会場に質問

  • PHP5の方が若干多め

PHPカンファレンスアンケート結果

PHP5への移行

  • PHP4のサポートは今年限り
  • PHP 4.3/4.4で75%(Nexen.net) 4.3が28%, 4.4が46%
  • GO PHP5

PHP4→PHP5以降のポイント

  • クラスに関係する部分は変更用
  • E_STRICTによる構文互換性チェック
  • ZendEngine1互換モード

zend.ze1_compatibility_mode=Off

  • 一部の関数の処理が非互換

PHP5.2

  • stat,implode,str_replace,シャットダウンの高速化
  • filter,zip,jsonエクステンション
  • Win32 Apache2.2対応

PHP5.3

  • 2008/1リリース?
  • PHP6までのつなぎ
  • ICUエクステンション:pecl/intl
  • OpenSSLエクステンションにOpenIDサポート追加
  • (名前空間)?

PHP 5.1/PHP 5.2の高速化

  • PHP 5.1/5.2 ZendEngine大幅に高速化
  • PHP 5.2 メモリしよう効率化

ベンチマーク見るとかなり速くなってる。

PHPとセキュリティ

  • Stefan Esser市が主宰
  • PHPのセキュリティ強化パッチ Suhosin
  • the Month of PHP Bugs (MOPB)? http://www.php-security.org/
    • PHPコアジェイじゃ区政、POCコード公開(ドイツの法律で禁止?)

PEAR/PECL update

PHP 6.0

  • Unicodeネイティブ対応
  • レガシーコード削除
  • エクステンション
  • 機能追加・改良

MySQL ND

  • DB I/Fをネイティブ実装 (libmysqlを使わない)
  • DB I/FをPHPから管理可能:メモリ管理、キャッシュなど
  • 使用メモリを低減、高速化
  • PHP5/PHP6をサポート:PHP6に標準バンドル(PHP 5.3にも...?)

Cycle collector

  • 現在はシンプルなガーベッジコレクタを実装
  • David Wang氏が「Google Summer of Code」で課題に
    • リファレンスカウンティング+サイクル検知
  • ez Componentsを使ったベンチマーク
    • メモリ消費量は1/2〜1/22に。実行時間は拡大
  • PHP6.0に採用予定。PHP5.3にも採用?

Namespace 名前空間

  • 多分5.3か6.0に入ってくる

PHP 6.0のUnicode対応

課題:PHP6と日本語

ーPHP6ではmbstringの機能の多くがネイティブ実装化
ー日本語対応は十分か?
ー(入力)文字コード検出は?

  • mbstringは不要になるか?

PHP6のデモ

  • Unicodeモードon/offで結果が変わるデモ

PHPプレゼンシステムがイイ。上にPHPコード、下に実行結果。

質疑応答

  • PHP6でみんなUnicode使う?
    • 英語圏はoffかも
    • 数年間は使われないかも。