勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法

  PHP

先日メモしたdBug.phpをPHP8系の環境で試すと動作しなかった。ただエラーメッセージは表示されず、構文チェックツールなどでも特に引っかからなかった。調べてみるとPHP8系でClassのコンストラクタ名のルールが多少変わったようでそちらが原因みたい。以下に対応方法をメモ。

 

リファレンス

https://www.php.net/manual/ja/migration80.incompatible.php

 

動作しない原因

上記リファレンスの以下部分が該当するっぽい。

クラス名と同じ名前のメソッドは、コンストラクタと解釈されなくなりました。 __construct() メソッドを代わりに使って下さい。

具体的にはdBug.phpの69行目のコンストラクタが以下のようになっている点が原因と思われる。

function dBug($var,$forceType="",$bCollapsed=false) {

 

対応方法

dBug.phpを書き換える場合

コンストラクタ部分を以下の通り書き換える。

#変更前
function dBug($var,$forceType="",$bCollapsed=false) {

#変更後
function __construct($var,$forceType="",$bCollapsed=false) {

そうすると以下の形で出力可能。

new dBug($array);

dBug.phpを書き換えない場合

以下の形で出力させる。

$dBug = new dBug();
$dBug->dBug($array);

 

所感

dBug.phpが2012年に作られたものでその後更新されていないため、もうちょっと新しめの似たようなライブラリを探したいところ。

 - PHP

  関連記事

GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法
GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法

GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...

PHPでファイルを添付してメールを送信する方法(PHPMailer)
PHPでファイルを添付してメールを送信する方法(PHPMailer)

PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...

PHPでのファイル関係
PHPでのファイル関係

ファイルを呼び出したり書き込んだりとかしばしば行うが、 未だに調べることが多いの ...

Composer自体のインストールとmonolog及びTwigをComposer経由でインストールする方法
Composer自体のインストールとmonolog及びTwigをComposer経由でインストールする方法

「Composerで○○をインストール」というのをよく見かけるがComposer ...

PHPでCannot re-assign auto……のエラー
PHPでCannot re-assign auto……のエラー

PHPバージョンアップに伴い「Fatal error: Cannot re-as ...