IO_SWF 2.2.3 をリリースしました
- 今回のリリースは PHP5.4
/5.3対応がメインです。 - 後は dump 表示の細かい修正があります。
※ 前のバージョン(IO_SWF 2.2.2 以前) で少なくとも PHP5.3.15 までは動作していましたが、PHP5.3.21 では PHP5.3 でも E_STRICT が有効だと警告が出ます。PHP5.4 では E_ALL に E_STRICT が含まれるので明示的に外さないと警告が出ますし、大抵出るでしょう。動きませんstrict の警告がでます。PHP5.3 環境でお使いの方は本バージョン(IO_SWF 2.2.3)への更新を強く勧めます。
ChangeLog
- PHP5.4
/5.3に対応しました。- PHP5.3
の古いマイナーバージョンではでも E_STRICT を指定しなければ、以前の IO_SWF でも警告は出ません。
- PHP5.3
- Shape のダンプ表示改善
- Style にインデックス番号を付けました
- NewFillStyles のインデントを揃えました
- Styles の count が 0 の時は (none) を表示
- Action のダンプの修正
- Action が空の場合に Undefined i が出るのを修正
- typo を幾つか修正: sceneBlasFlag, Bigmap
PHP5.4/5.3 対応
- IO_SWF_Type のメソッドを揃えるのに abstract static を使っていましたが、PHP5.x では廃止されて IO_SWF が動かなくなりました。
- http://atamoco.boy.jp/php5/class/abstract.static.php
- interface を implements で引き継ぐ方式に変更して対応。
Thank you so much! > @AknEp
公式ドキュメントによると PHP5.2 で abstract static が取り除かれてるはずですが、PHP 5.3.15 は普通に動作しちゃってます。PHP 5.3.21 や PHP5.4 では動作はしますが strict 警告が出ます。 実際に警告が出るかは error_reporting の E_STRICT 次第です。PHP5.3 だと付かない事もありますが、PHP5.4 では基本警告が出ると考えた方が良いです。
abstract static function
- テストコード (abstract_static.php)
<?php abstract class A { abstract static function foo(); } class B extends A { static function foo() { echo "B::foo()\n"; } }
- 結果1 (PHP5.3.15)
B::foo()
- 結果2 (PHP5.3.21 or PHP5.4)
Strict Standards: Static function A::foo() should not be abstract in abstract_static.php on line 3 B::foo()
interface static function
こっちの方式を使うように修正しました。
<?php interface A { static function foo(); } class B implements A { static function foo() { ; } }
追記
- abstract static に関して挙動を勘違いしていたので、調べ直して記事にまとめました。