[JP]PHP 7.4 変更事項

Jangwook Kim
Dec 20, 2019 · Unlisted

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

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


RFC 投票プロセスの変更

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

  1. プロポーザルのパスのためには2/3の賛成が必要になります。

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

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store