#バドシス 〜 日々のことを続く限り書いてみようと思って 〜

頑張って日々のことを書いていこうと思います。

PHP 5.5.x から PHP 5.6.xへの移行

 

 

f:id:mizominton:20161011162045p:plain

まずはバージョン確認

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 への移行

PHP: 下位互換性のない変更点 - Manual

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

 

PHP: 変更された関数 - Manual

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_

Reflection

 検索ワード:Reflection

XMLReader

 検索ワード:XMLReader::getAttribute