[JP]PHP 7.4 変更事項

Jangwook Kim
4 min readDec 20, 2019

PHP 7.4はPHP 8に移行するため準備するところです。PHP 7.4で何が変更されたのか把握しておく必要があります。

PEARはこれからデフォルトで無効状態です。

PEARはPHPのパッケージマネージャーです。 PHP開発者がコンポーネントをリサイクルできるように助けてくれます。

Composerの登場により、PEARはパッケージマネージャーとしての魅力が低くなったし、PHP 8ではそのものが削除される可能性も存在します。

可能であればComposerを使用するのをおすすめします。

PDO

PDOはクエリおよびDBコマンドの一貫性を高めるためにDB言語の前に位置しているレイヤーです。 様々なDBとのコネクションをサポートしています。

PHP 7.4ではPDOに対するいくつかの変更事項があります。

ドライバー呼出時、ユーザー名・パスワードが指定できるようになりました。

エスケープ文字を通じて “?” キーワードが使用できるようになりました。

PostgreSQLには “?” キーワードがありますが、PHP 7.3 までには PHP extension でそのキーワードを使えませんでした。

?がプレースホルダーとして利用されていて、エスケープするのが不可能だったためです。

PHP 7.4では ??? キーワードとして認識できるようになり、下記のように使うことができます。

Oracle DBのための新しい関数ができました。

PDOStatementにPDO_OCI(Oracle DBのためのPDOドライバー)のためgetColomnMeta()メソッドができました。

このメソッドはResult setのコラムに対するメタデータを返します。

返されるキーにはnative_typeflagsnamelenprecisionpdo_typeがあります。

PDOとSQLite

SQLite3の拡張結果が確認できるようになりました。 errorInfo() メソッドはPDOクラスで最後に発生したエラーに関する情報を持ってきます。 setAttribute() メソッドを通じてSQLite 3でも拡張結果が確認できるようになりました。

PDO_SQLiteの --with-pdo-sqlite フラグは SQLite 基盤がインストールされたディレクトリーを承認するために使用されていましたが、このフラグはこれからディレクトリー承認目的で使えません。

PDOStatement クラスの getAttribute() メソッドを使用してコマンドがReadOnlyなのか確認できるようになりました。

SQLite3

PDOに関連してのSQLite3アップデートもありましたが、SQLite3クラス自体にもアップデートがあります。

SQLite3Stmt および SQLite3Result が使えなくなります。

コマンドの SQL 検索

SQLite3のバックアップDB作成

新しいグローバル Constant

36個の新しいグローバル Constantが追加され、追加されたものは下記の4種類に分類できます。

  1. PHP Core
  2. Multibyte string
  3. Sockets
  4. Tidy

詳しい内容は公式ドキュメントを確認してください。

RFC 投票プロセスの変更

RFC プロポーザルに帳票する時、2つのルールが変更されました。

  1. プロポーザルのパスのためには2/3の賛成が必要になります。
  2. すべてのRFCは最低2週間オープンの状態でいなければなりません。

今回はPHP 7.4の変更事項に対して確認しました。次回の記事ではPHP 7.4のパフォーマンスが同変更されたのか確認したいと思います。

--

--

Jangwook Kim

Korean, live in Japan. The programmer. I love to learn something new things. I’m publishing my toy projects using GitHub. Visit https://www.jangwook.net.