PHP 5.5.x から PHP 5.6.xへの移行
まずはバージョン確認
php -v
確認したら5.5.29でした。
変更点の確認をしよう
PHP 5.5.x から PHP 5.6.x への移行
PHP: PHP 5.5.x から PHP 5.6.x への移行 - Manual
変更点に該当するプログラムを片っ端からチェック
関数名とか定数名とか、変更点で片っ端からGrepしていくしかないですね・・・。
検索ワードで検索していくイメージです。
コマンド例
sudo find / -name "*.php" -print | xargs grep 検索ワード 2> /dev/null
PHP 5.5.x から PHP 5.6.x への移行
GMP リソースがオブジェクトに
GMP リソースがオブジェクトになりました。 GMP 拡張モジュールに実装されている API に変更はなく、コードに手を加えなくてもそのまま動作します。 しかし、is_resource() などでリソースかどうかを明示的に調べている場合は注意が必要です。
検索ワード: gmp_
Mcrypt 関数は、有効なキーと IV を要求する
mcrypt_encrypt()、mcrypt_decrypt()、 mcrypt_cbc()、mcrypt_cfb()、 mcrypt_ecb()、mcrypt_generic() およびmcrypt_ofb() は、無効なサイズのキーや IV を受け付けなくなりました。 IV が必要なブロック暗号化モードで IV が指定されていない場合にも、処理が失敗するようになりました。
検索ワード:mcrypt_
cURL でのファイルアップロード
@file 構文によるファイルアップロードを行う際には、CURLOPT_SAFE_UPLOAD を
FALSE
に設定しなければいけなくなりました。 この機能を使うのではなく、CURLFile を使うべきです。
検索ワード:curl_
PHP: PHP 5.6.x で推奨されなくなる機能 - Manual
always_populate_raw_post_dataを無効にする
php.iniの、
always_populate_raw_post_data = -1
を削除する。
iconv および mbstring のエンコーディング設定
iconv および mbstring の、エンコーディングに関するオプションが非推奨となりました。 代わりに
default_charset
を使いましょう。 非推奨になったオプションは、以下のとおりです。
検索ワード:iconv
検索ワード:mbstring
crypt()
crypt() で、salt パラメータを省略したときに E_NOTICE が発生するようになりました。
検索ワード:crypt
substr_compare()
substr_compare() が、 length パラメータに 0 を受け付けるようになりました。
対応不要
unserialize()
unserialize() に渡したシリアライズ済みデータが、自身のコンストラクタを呼ばないようなオブジェクトに改変されている場合に、処理が失敗するようになりました。
検索ワード:unserialize
OpenSSL stream_socket_enable_crypto()
- stream_socket_enable_crypto() で、
crypto_type
パラメータをオプションにすることができるようになりました。 ストリームの SSL コンテキストに、新しいオプションcrypto_type
を指定します。
*上でcryptで検索しているのでそこで調査できる為検索は不要
PostgreSQL
- pg_insert()、pg_select()、 pg_update()、pg_delete() が、実験的な関数ではなくなりました。
- pg_send_execute()、 pg_send_prepare()、pg_send_query()、 pg_send_query_params() が、 データベース接続に使っているソケットストリームがノンブロッキングモードの場合は、 クエリの書き込み完了まで待つようなブロックをしなくなりました。
検索ワード:pg_
Reflection
- ReflectionClass::newInstanceWithoutConstructor() で、final ではない内部関数をインスタンス化できるようになりました。
検索ワード:Reflection
XMLReader
- XMLReader::getAttributeNs() と XMLReader::getAttributeNo() が、 属性が見つからない場合に
NULL
を返すようになりました。これは XMLReader::getAttribute() と同じ挙動です。
検索ワード:XMLReader::getAttribute