php5.3ってなんなんだー

36
PHP 5.3 っっっっっっっっ Kousuke Ebihara <[email protected]>

Upload: kousuke-ebihara

Post on 15-Jan-2015

6.296 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

PHP 5.3 ってなんなんだーKousuke Ebihara

<[email protected]>

アジェンダ 現在のステータスとリリーススケジュール

PHP 5.3 いつ出る? 後方互換性のない変更

今回の BC クラッシャーっぷりはいかに 新機能ツアー

現在のステータスとリリーススケジュール

PHP5.3 ってなんなんだー

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 四半期あたりで

ということで、

今年の夏はPHP 5.3 が アツイ!!

後方互換性のない変更PHP5.3 ってなんなんだー

後方互換性のない変更(・ 3 ・) 予約語が増えます

namespace goto

予約済みクラスも増えます Closure

後方互換性のない変更(・ 3 ・) よく使う関数に仕様変更がある

usort(), array_flip(), array_unique() とかがオブジェクトを引数に取れなくなったので、使う前にかならず配列にキャストしてね!

session_start() がなんらかの事情でセッション開始に失敗した場合に false を返すようになった(いままで常に true を返していたらしいよ!)

パスワードを利用している MySQL 4.1 未満の DB に対して、 mysql_connect() で接続しようとすると Fatal error で落ちる

後方互換性のない変更(・ 3 ・) PECL 行きの拡張(ドナドナ拡張)

ncurses fpdf dbase fbsql ming msql

後方互換性のない変更(・ 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 の実行時設定が可能になったらしいよ

新機能ツアーPHP5.3 ってなんなんだー

PHP5.3 を導入 適当に php.net から php5.3-dev を入

手 ディレクトリを展開して、普通に

./configure make make install

名前空間

goto文

ラムダ関数

無効化できなくなった拡張 PCRE

Perl 互換正規表現 Reflection

クラスや関数やエクステンションへのリバースエンジニアリング用 API

SPL Standard PHP Library イテレータとか特殊なデータアクセスの方法を実現す

るためのインターフェースとかクラスの集まり

気軽に使えるように!

ファイルシステム系関数の一部がWindows 対応

fnmatch() link() lstat() linkinfo() readlink() symlink()

DateInterval

日付の間隔を表すクラス DateTime のインスタンス(日付)に特

定期間を足したり引いたり、 2 つの DateTime の差分を表したりできるようになった

DateInterval

DatePeriod

日付の期間を表すクラス コンストラクタに以下の情報を渡す

開始日( DateTime ) 間隔( DateInterval ) 終了日( DateTime )

ループとかにぶち込む

DatePeriod

増えまくった 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 ってなんなんだー

Phar

Phar とは、 PHP のスクリプトファイルを 1 つの実行可能なアーカイブとしてまとめるためのもの Java の Jar のパクリ

ファイルやディレクトリに関する操作を乗っ取って、 Phar アーカイブ内で完結させてくれる

アーカイブの作成は Phar 拡張モジュールが必須だが、実行は拡張モジュール不要 PHP 5.2 以前の環境でも動作する可能性

Phar

1. Phar ファイル作成用スクリプトを書く1. ファイルフォーマットとかいろいろ決める

Phar 形式の他に ZIP 形式とかにもできる2. スタブ( Phar ファイルがロードされたとき

に最初に実行されるスクリプト)を書く 最初にどのファイルを実行するかとかそういうこ

とを決める2. Phar ファイルを PHP スクリプトとし

て実行する

質疑応答タイム&

PHP5.3体感タイム

気軽にどうぞ!