PHP8系の環境でdBug.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で日付の比較
以前に「締切日を設けて、今日の日付と比較して分岐させる」というもので 日付の比較 ...
-
PHPでCSVを簡単に取り扱える「LeagueCSV(thephpleague / csv)」の利用方法
PHPでCSVファイルの書き込みや読み込みを行う際、バニラPHPで対応していたが ...
-
MySQLでランダムにデータを取得しつつページング機能も実装する方法
MySQLからデータを持ってくる際にランダムな表示を行ってほしいと言われた。ただ ...
-
php.iniを変更後にApacheを再起動しても反映されない場合の対応方法
先日AlmaLinux8系にChronyをインストールしてサーバの時刻同期を行っ ...
-
WordPressにてPHPのAPCuを使用して高速化を図る方法
先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...