PHP 7 にアップグレードする前に Web サイトを準備するにはどうすればよいですか?

8月 18, 2017

PHP 7のリリースは、旧バージョンで非推奨とされた機能を削除し、言語の一貫性を強化することに主眼が置かれている。

新バージョンリリース時

  • 一部のエクステンションは削除可能
  • いくつかの拡張機能や機能は非推奨になる可能性があります。
  • その他の機能が変更される可能性がある

ここでいう「非推奨」とは、プログラマーに特定の拡張機能や関数の代替案を提示することで、その使用を控えさせ、将来のリリースではその関数や拡張機能を完全に削除することを意味する。
このため、移籍の際には移籍文書を使用する必要がある。 新しいバージョンへのアップグレード.この文書では、以下の事項を取り上げることがある:

  • 新機能と特徴
  • 非推奨の機能と関数
  • 変更された機能と特徴
  • 下位互換性のない変更
  • 新しいグローバル定数
  • 新しいクラスとインターフェイス
  • SAPIモジュールの変更点
  • エクステンションとSAPIの削除
  • その他の変更

以下は、PHPを古いバージョンからPHP 7にアップグレードする際の手順です:
最初にすべきことは、取り外したエクステンションの跡を消すことである。その PHPマイグレーション ドキュメントは、これらの削除された拡張子のためのかなりの数の代替案を提供することができます。

PHP 7 の導入に際して、削除された拡張モジュールは以下のとおりです:

  1. エムエスエスエル
  2. mysql
  3. エレグ
  4. sybase_ct

次に、移行ドキュメントから、すべての機能が変更された必要な情報を得ることができる。新バージョンを導入する際には、次のような変更もあり得る:

  • リターン・タイプの変更
  • パラメータの一部削除

そこで、これらの変更された関数がPHPのウェブサイトで使用されているかどうかを確認し、これらの移行ドキュメントを参照し、それに応じて必要な変更を行う必要がある。

PHP 7の場合、変更された関数の一部を以下に示す:

  • 関数 mktime() および gmmktime() は is_dst パラメータを受け付けなくなった。
  • 関数 substr() と iconv_substr() は空文字列を返すようになりました。

第三に、非推奨の関数や拡張機能の使用を排除することである。

PHP 7の場合、非推奨となる機能を以下に示します:

  1. PHP 4 スタイルのコンストラクタ - PHP 4 ではコンストラクタを作成する際に、定義されているクラスと同じメソッドを使用していました。そのため、これらのメソッド名は __construct() に置き換える必要があります。
  2. 非静的メソッドへの静的呼び出しも非推奨となり、将来のリリースでは削除される予定である。
  3. password_hash()関数のsaltオプションは、開発者がsaltを提供しない場合でも関数が暗号的に安全なsaltを生成できるため、非推奨となりました。

次に、つまり4番目に行わなければならないことは、後方互換性のない変更の扱いである。新バージョンを導入する際には、「後方互換性のない変更」について移行文書を参照する必要がある。

以下は、後方互換性のない変更点の一部である:

  • foreachはもう内部配列ポインタを変更しない
  • global は単純な変数のみを受け付けるようになりました。
  • 変数 variable はもうグローバルキーワードでは使えない。
  • 16進文字列はもはや数値とはみなされない
    例えば、こうだ:
    <?php
    var_dump(is_numeric("0x123"));
    ?>PHP7で前述の例の出力は:bool(false)
  • ゼロによる除算の変更点
    以前は、divide(/)またはmodulus(%)演算子の除数として0が使用されると、E_WARNINGが発生し、falseが返されていました。現在では、除算演算子は float を +INF、-INF、または NAN として返すように変更されました。モジュラス演算子E_WARNINGは削除され、DivisionByZeroError例外がスローされます。

私たちは PHP開発会社 弊社は10年以上の経験を生かし、様々な業種のグローバルクライアントにPHPウェブ開発プロジェクトを提供しています。私たちは、あなたのビジネス上の問題のための最も効率的なソリューションを考え出すために、最先端のツールとテクニックを採用しています。PHP開発者を雇うこのサービスでは、開発者の技術スキル、プロジェクトに対するアプローチ、過去の実績を評価し、業界で最も経験豊富な人材の中からお選びいただけます。

jaJapanese