パスワードを忘れた? アカウント作成
450073 journal

Oliverの日記: 二日目その二: PHPとZend Engineの過去と将来

日記 by Oliver

PHPのコア開発者の一人でZend Engineを書いたZeev Suraskiによるセッションで、PHPの歴史を簡単にまとめて、PHPの次期バージョンにむけてのデザインアイディアを披露。
新しいZend Engineのリリースは数ヵ月後を予定、PHP5はその後、すでにCVSレポジトリを公開中

  • PHP/FI 1 &2:シンプルなスクリプトエンジン => lex & yaccすら使わずにすべて手で実装し、拡張性ゼロ、スクリプトを読みながら逐次実行、Apache専用
  • PHP3:スクラッチからの書き直し、lex & yacc使用、拡張用API、とても限定されたオブジェクト指向、あいかわらず逐次実行、モジュールとして使う場合はApache専用
  • PHP4:またもやほぼスクラッチから再実装、スクリプト全体のコンパイル後に実行 => 高速化、特にループが劇的に高速化、リファレンスカウントによるメモリ管理=>ループ内での明確的なmysql_free_result的な事が不要に、マルチスレッド対応、複数ウェブサーバに対応

Zend Engine 2 (PHP5?):

  • Javaライクなオブジェクト指向、サンプルコードはJavaソックリ
  • ->でリファレンス参照、$object->hoge()->foo()といったchainingに対応
  • setHoge, getHoge 形式のアトリビュートアクセス (うげっ)
  • オブジェクトはデフォルトでcall by reference (現在はオブジェクトでもcall by value)
  • コンストラクタの名前は __constructor() (ひ~)
  • 例外処理 (まんまJavaなtry/catch/throw/finally構文)
  • 文字列内のオフセットの表記を $str[2] から $str{2}に変更、配列との明確な区別でミス防止と高速化
  • Operator Overloadingは対応予定なし
  • まだ決ってない事::多重継承、プライベートなメンバ変数 (いままでなかったんかい)、JITの可能性を検証中

Rubyistとしては「いゃ~ん」で前時代的なオブジェクト指向

typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...