ログイン




PHP5.5の変更点

3月 4th, 2013 by

PHP5.5の変更点を見る

  • ジェネレータの追加
    新しい構文が追加されました。使いドコロが難しそうです。CSVのインポートやエクスポートでメモリ消費を抑制するのに良いかも。

  • finally キーワードの追加
    try、catchでfinally出来るようになりました。今までなかったんですね。

  • foreach が list() に対応
    foreachのasの右側にlistを使えるようになりました。あって困る機能ではないですね。
    $data = array(
    array(1,2,3),
    array(2,3,4)
    );
    foreach($data as list($a, $b, $c)){
    }

  • empty() が任意の式に対応
    empty(trim($hoge))がOKになったそうです。empty信者にはいいですね。

  • array リテラルと string リテラルのデリファレンス
    “Hello World”[0] に対応しました。何が嬉しいのか全くわかりません。

  • 新しいパスワードハッシュ API
    ストレッチングが簡単にできるようになりました。シードつけてストレッチ。自前で実装しなくていいって素敵ですね。

    あちこち改良されているものの、今直ぐPHP5.5を使うべき積極的理由は見当たりません。とはいうものの、PHP5.3のメンテナンスがまもなく打ち切られ、PHP5.4のメンテナンスも1年余り先には打ち切られることを想定すると、これから新規で開発するならPHP5.5にしちゃっても後悔しないと思います。5月頃に安定版が出るとして・・・夏以降に運用開始なシステムならPHP5.5でいっちゃいましょう。

  • PHP5.5のジェネレータ

    3月 4th, 2013 by

    PHP5.5ではジェネレータが追加されます。ジェネレータを使えば、メモリ消費を抑制した高速なプログラムを簡潔に記述できます。CSVのインポートやエクスポートなど、大量なデータの処理ではジェネレータが活躍しそうですが(GB単位のデータをメモリに展開しなくてもよい)、それ以外では、敢えてジェネレータを使うことは少なそうです。ジェネレータを使ってしまうと、PHP5.5以降が必須の移植背の低いコードになってしまうからです。

    PHP5.5βは3月7日に延期

    2月 24th, 2013 by

    PHP 5.5.0 Alpha5 released

    2月21日にPHP5.5.0のalpha5リリースされました。本来であれば2月7日にβ1がリリースされる予定だったのですが、どうしても追加した機能があったのか、ベータではなくalphaが再びリリースされたようです。今回のリリースでは、βの初版リリースは3月7日予定とされています。βが1回で終わるとは思えないので、5.5の正式版のリリースは2013年5月以降になりそうです。

    5.5.0alpha5で追加された機能は以下のとおり(概要)
    ・tmpディレクトリをphp.iniで指定できるようになりました。
    ・mysqli, mysqlndでMySQLのトランザクションをサポートしました。
    ・recvmsg、sendmsgを実装しました。(ソケット通信のラッパ?)

    エラー出力のON/OFF

    2月 12th, 2013 by

    php.iniで設定する
    サーバの設定で切り替える方法です。(サーバまるごと)

    1
    2
    3
    4
    5
    ;エラーを出力しない場合
    display_errors = Off

    ;エラーを出力する場合
    display_errors = On

    .htaccessで設定する
    .htaccessで切り替える方法です。(ディレクトリ単位)

    1
    php_flag display_errors Off

    ini_setで設定する
    PHPのソースコード内で設定する方法です。(スクリプト単位)

    1
    2
    3
    4
    5
    // エラー出力しない場合
    ini_set( 'display_errors', 0 );

    // エラー出力する場合
    ini_set( 'display_errors', 1 );

    PHPでutf-8のBOMを取り除く方法

    2月 9th, 2013 by

    PHPでutf-8のBOMを取り除く方法。BOMがついていなければ、何も操作しない。

    1
    2
    3
    4
    5
    6
    7
    function delete_bom($str)
    {
        if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
            $str = substr($str, 3);
        }
        return $str;
    }

    PHP で UTF-8 に付いている BOM を削除する方法

    PHP5.5 β版のリリースは2月7日予定

    1月 25th, 2013 by

    PHP 5.5.0 Alpha4 released

    PHP5.5.0のAlpha4がリリースされました。そして、そのリリース文の中で、これが最後のAlpha版で、次からはbetaになると言及されていました。βの初版は2月7日にリリースされ、これ以降は新機能の追加は止め、安定性の向上に集中するとのことです。

    PHP5.3のメンテナンスがこの春に終わるとのことなので、その頃にPHP5.5.0の正規版がリリースされそうですね。

    PHP5.4.10とPHP5.3.20

    1月 15th, 2013 by

    2012年12月20日にPHP5.4.10とPHP5.3.20がリリースされた。その時のリリース文で、PHP5.3のライフサイクルは2013年3月で終わり、それ以降は、致命的な不具合(セキュリティーホール)だけに対応するとアナウンスされています。これから新規で開発を行う場合、PHP5.3ではなく、PHP5.4を選んだほうが幸せになれそうです。

    The PHP development team announces the immediate availability of PHP 5.4.10 and PHP 5.3.20. These releases fix about 15 bugs. Please note that the PHP 5.3 series will enter an end of life cycle and receive only critical fixes as of March 2013. All users of PHP are encouraged to upgrade to PHP 5.4.

    PHP5.4.3とPHP5.3.13がリリース

    5月 10th, 2012 by

    PHP5.4.2と5.3.12がリリースされたのが5月6日。そしてそのわずか2日後の5月8日にPHP5.4.3とPHP5.3.13がリリースされた。

    修正されたのは以下の2点
    ・apache_request_headers()のバッファーオーバーフロー問題(5.4系のみで発生)
    ・CGIで動作させている場合にソースコードが公開されてしまう脆弱性(CVE-2012-2311)の修正の仕上げ

    5.4系を使っていて、apache_request_headers()を実行する可能性がある場合や、CVE-2012-2311の影響を受けている場合は、速やかにアップデートしましょう。

    PHP5.3.11とPHP5.4.1 リリース

    4月 27th, 2012 by

    PHP 5.3.11 And PHP 5.4.1 Released!

    PHP5.3.11とPHP5.4.1がリリースされました。セキュリティーの向上や、DOMのデバッグ機能の改善が実施されているようです。また、Apache2.4.1と組み合わせたときにconfigureに失敗する問題も解決したようです。

    PHPの全ての利用者は、PHP5.3.11もしくはPHP5.4.1にアップデートするよう強く推奨されています。

    CakePHP2.1.1 と 1.3.15リリース

    3月 26th, 2012 by

    本日、CakePHPの最新版がリリースされたようです。

    CakePHP 2.1.1 and 1.3.15 released

    CakePHP2.1.1と1.3.15がリリースされました。共にバグフィックス(メンテナンス)リリースです。

    CakePHP2.1.1の修正点

  • session_cache_limiter() removed when starting a session, also remove setting P3P header
  • Updated the .htaccess files, make sure you update them in you apps as well.
  • Set::sort() now correctly sorts when using {s}.path
  • Fixed Session.cookieTimeout default behavior
  • Made Validation class more strict when checking values in list.
  • Used urldecode trailing pass arguments in the URL
  • Added missing ‘recursive’ option to DigestAuthenticate object.

    CakePHP 1.3.15 の修正点

  • Fixed an issue with find(count) and translated conditions.
  • Adding iPad and windows phone os as mobile clients.
  • Fixed Number::currency() when using custom formats and numbers between -1 and 1.
  • Fix a bug introduced when generating partial compatibility between 1.3 and 2.0 Cookies, where an empty valued key
  • caused a PHP notice. Also, harden tests.
  • Fix header stripping in EmailComponent, it was aggressively stripping to: from text.
  • Fix EmailComponent::reset() not resetting delivery
  • Fix issues where nested HABTM associations would create duplicate content.

    2.1.1はこれ迄のバージョンの中で、最も豊富な機能と、最高の安定性を兼ね備えています。この機会に是非2.1.1にアップデートしましょう!