勉強したことのメモ

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

  関連記事

PHPで複数のファイルをまとめてzipファイル化し、ダウンロードさせる方法

PHPで複数のファイルをまとめてzipファイル化し、ユーザーにダウンロードさせた ...

PHPでBlowfishアルゴリズムを用いた暗号化と復号化方法

PHPでBlowfishアルゴリズムを用いてCBCモードで暗号化と復号化を行いた ...

PHPでサイトマップを動的に生成する方法

WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...

PHPでログファイルから指定行数表示させる

エラーログを最新分から指定行数表示させる プログラムがあって、どういった作りにな ...

PHPで指定日から曜日を割り出す

曜日ってどうやって割り出すの? となったのでメモ。 ■リファレンス http:/ ...