PHP5.3.0alpha2 の試用メモ
新機能盛りだくさんなのでちょっと試してみた。
PHP: doc:scratchpad:upgrade:53 [PHP Wiki]
ここに大まかな新機能は載っている。新機能としてnamespace, goto, closureが並んでいるのはPHPらしいと言うか何と言うか。
インストールは特に問題なし。Fedora5。
wget http://downloads.php.net/johannes/php-5.3.0alpha2.tar.bz2 tar jxvf php-5.3.0alpha2.tar.bz2 cd php-5.3.0alpha2 ./configure make ./sapi/cli/php -v
namespace、あると便利そう、と思っていたがクラスごとにuseを書くのは面倒でないか?
namespace Funaki::Test;
class Hoge { ... }
class Foo { ... }
こんな感じにクラスファイルを作っても(HogeとFooは別ファイルでもいい)呼び出すときに
use Funaki::Test; $obj = new Hoge;
だけでは
Fatal error: Class 'Hoge' not found
が出る。use Funaki::Test::Hoge; と書く必要があるようだ。::の前に$hogeと変数は使えないのでuseよりフルネームで書くことの方が多そう。
closureは、、使うだろうか。
?:も
$hoge = (isset($array['idx']) ? $array['idx'] : null);
を
$hoge = ($array['idx'] ?: null);
と書けるならよかったのだが、idxがないとNotice: Undefined offsetエラーが出るので使う機会はないと思う。
__DIR__は地味に便利だ。dirname(__FILE__)のエイリアス。
NEWDOCやDateTimeとかPharも使う機会はありそう。gotoも使ってしまうかもしれない。
vimのsyntax highlightがまだ対応していないのでちょっと寂しい。
この辺も気になる。
PHPTypeSafeで目から鱗が落ちた – Do You PHP はてな
本を読む PHPカンファレンス2008に参加しました
mysqlndで速くなったらしい。
PHP本体も
php.internals: Re: re2c scanner issue
パーサーをre2cなるものに変えて速くなったらしい。メモリ効率の改善はうれしい。
CentOSのyumで入れられるようになるのはいつかなー。