php5.3ってなんなんだー
DESCRIPTION
TRANSCRIPT
PHP 5.3 リリース予定日の変遷 2007 年 9 月
海老原昂輔、日本大学芸術学部演劇学科 1 年として、 OpenPNE づくしの夏休みを送る
OpenPNE 2.10 alpha1 リリース au one サービス開始 郵政民営化間近
秋の早いうちにベータ出そうぜ 2008 年の第 1 四半期に正式版出そう!
PHP 5.3 リリース予定日の変遷 2008 年 3 月
海老原昂輔、大学生活で最初で最後の春休み、 OpenPNE づくしの毎日を送る
OpenPNE 2.11.5 リリース Netscape Navigator 終了のお知らせ
「なんかベータ出せてなくね?」という議論 2008 年の第 2 四半期にベータ出そう! 2008 年の第 2 か第 3 四半期に正式版出そ
う!
PHP 5.3 リリース予定日の変遷 2008 年 6 月
海老原昂輔、一度も大学行かず、履修登録もせず
OpenPNE 2.12.1 リリース 秋葉原通り魔事件
ちょっと To-do こなせてないし、議論もしなくちゃいけないので未定で!!
PHP 5.3 リリース予定日の変遷 2008 年 7 月
海老原昂輔、退学届けをもらう OpenPNE3alpha1 ちびちびと開発開始
7/24 に機能追加フィックスして 7/31 にアルファ(達成)
2 ・ 3 週間周期で アルファ・ベータ・ RC 出してこうぜ
9 月中旬〜 10 月中旬には安定版出せるよ
PHP 5.3 リリース予定日の変遷 2008 年 10 月
海老原昂輔、手嶋屋 入社 OpenPNE3alpha3 開発しまくり 2008 年内に正式版出そう
2008 年 11 月 OpenPNE3alpha3 リリース 2009 年第 1 四半期に正式版出そう
2009 年 3 月 OpenPNE 3.0.3 リリース 2009 年第 2 四半期に正式版出そう
PHP 5.3 現在の開発ステータス
現在は RC 2 2009/05/07 にリリース 3 週間くらいで RC3 出すよ( =05/28 まで
には RC3 が) ドキュメント整えつつ、バグ直しつつという
段階 正式版リリース予定
2009 年第 2 四半期あたりで
後方互換性のない変更(・ 3 ・) よく使う関数に仕様変更がある
usort(), array_flip(), array_unique() とかがオブジェクトを引数に取れなくなったので、使う前にかならず配列にキャストしてね!
session_start() がなんらかの事情でセッション開始に失敗した場合に false を返すようになった(いままで常に true を返していたらしいよ!)
パスワードを利用している MySQL 4.1 未満の DB に対して、 mysql_connect() で接続しようとすると Fatal error で落ちる
後方互換性のない変更(・ 3 ・) 非推奨化(利用すると E_DEPRECATED レベル
のエラーを出力する) declare(ticks=N) とか register_tick_function()
tick というのはパーサが N 個処理を実行するたびに、任意の処理を実行させることできる超マイナーな機能のうちのひとつ(でも OpenPNE2 内で見かけたことがあったような……?)
すべての ereg 系関数 php_users の ML とかで大混乱が起きるのが今から楽し
みで仕方がありません! 手嶋屋では ereg 系関数なんて使わせませんが、手嶋屋以
外のエンジニアが書いたコードなどは見ておくといいかもしれないですね
後方互換性のない変更(・ 3 ・) 非非推奨化(非推奨じゃなくなった)
is_a() 使っても E_STRICT が発生しなくなった(!) 5.0.0 〜 5.2.x では instanceof 演算子を利用
する必要がある とりあえず意味が全くわからない。いいよ別に
instanceof で
後方互換性のない変更(・ 3 ・) ZendEngine 1 互換モードの削除
zend.ze1_compatibility_mode PHP5 で非推奨な PHP4 のコードをだましだま
し動かすための php.ini への設定項目 ただし、まったくだませてない 比較演算子の細かい挙動と、オブジェクトのコピーや
キャスト時の挙動が PHP4 準拠になるだけ これが原因で E_STRICT エラーが大量に出ることもあ
る (まさか)使ってる人いないですよね?
後方互換性のない変更(・ 3 ・) /tmp ディレクトリへのセッションファイ
ル保存時の特殊な扱いがなくなる PHP 5.2.2 からは open_basedir 設定が有効になっている場合でも /tmp ディレクトリへのセッションファイル保存はおこなえたが、やっぱり 5.3.0 からはできなくなる
ちなみに open_basedir の実行時設定が可能になったらしいよ
無効化できなくなった拡張 PCRE
Perl 互換正規表現 Reflection
クラスや関数やエクステンションへのリバースエンジニアリング用 API
SPL Standard PHP Library イテレータとか特殊なデータアクセスの方法を実現す
るためのインターフェースとかクラスの集まり
気軽に使えるように!
DatePeriod
日付の期間を表すクラス コンストラクタに以下の情報を渡す
開始日( DateTime ) 間隔( DateInterval ) 終了日( DateTime )
ループとかにぶち込む
増えまくった SPL
SplStack とか SplQueue とか
SplFixedArray サイズが可変じゃない配列だよ
$array = new SplFixedArray(100); インデックスは添字だけだけど速いよ
もちろん Iterator も大量増加 FilesystemIterator GlobIterator RecursiveTreeIterator
FileInfo
PECL からデフォルトの拡張行きに ファイルの中身を見て、 MIME type と
エンコーディングを推測してくれる 精度はそこそこいいらしいよ シンボリックリンクを辿ったりとか圧縮され
たファイルを伸張したりとかできるとかなんとか
国際化関数 ICU ライブラリのラッパー
つーことで、使うならビルドに ICU ライブラリが必要な気がする
地域にあわせたフォーマットを扱えるようになる 数値←→通貨文字列 日付・時刻
言語にあわせたメッセージ出力機構 gettext とか xliff みたいな MessageFormatter::formatMessage(”ja_JP“,
”{0} は {1,number,integer} 歳だよ!“ , array(‘ 海老原昂輔’ , 21));
Phar
Phar とは、 PHP のスクリプトファイルを 1 つの実行可能なアーカイブとしてまとめるためのもの Java の Jar のパクリ
ファイルやディレクトリに関する操作を乗っ取って、 Phar アーカイブ内で完結させてくれる
アーカイブの作成は Phar 拡張モジュールが必須だが、実行は拡張モジュール不要 PHP 5.2 以前の環境でも動作する可能性
Phar
1. Phar ファイル作成用スクリプトを書く1. ファイルフォーマットとかいろいろ決める
Phar 形式の他に ZIP 形式とかにもできる2. スタブ( Phar ファイルがロードされたとき
に最初に実行されるスクリプト)を書く 最初にどのファイルを実行するかとかそういうこ
とを決める2. Phar ファイルを PHP スクリプトとし
て実行する