[JP]PHP 7.4 変更事項
--
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_type
、flags
、name
、len
、precision
、pdo_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種類に分類できます。
- PHP Core
- Multibyte string
- Sockets
- Tidy
詳しい内容は公式ドキュメントを確認してください。
RFC 投票プロセスの変更
RFC プロポーザルに帳票する時、2つのルールが変更されました。
- プロポーザルのパスのためには2/3の賛成が必要になります。
- すべてのRFCは最低2週間オープンの状態でいなければなりません。
今回はPHP 7.4の変更事項に対して確認しました。次回の記事ではPHP 7.4のパフォーマンスが同変更されたのか確認したいと思います。