xoops php7.4に変更したらFatal error: Call to undefined method
解決したいこと
初めて投稿させていただきます。
現在XOOPSにてサイトを構築していますが、PHP5.6からPHP7.3に変更しましたら
色々不具合が出てきました。
XAMPPにてローカルで新しいPHP7.4でテストしていますが、
phpデバグにて取得したエラーログは以下の通りでした。(PHP7.3でも同じ)
発生している問題・エラー
Fatal error: Uncaught Error: Call to undefined method whatsnew_show_block_handler::happy_linux_build_cache() in C:\xampp\htdocs\20200703\main\modules\whatsnew\class\whatsnew_show_block_handler.php:93 Stack trace: #0 C:\xampp\htdocs\20200703\main\modules\happy_linux\include\functions.php(93): whatsnew_show_block_handler->__construct('whatsnew') #1 C:\xampp\htdocs\20200703\main\modules\whatsnew\include\functions.php(18): happy_linux_get_handler('show_block', 'whatsnew', 'whatsnew') #2 C:\xampp\htdocs\20200703\main\modules\whatsnew\blocks\block.new.php(55): whatsnew_get_handler('show_block', 'whatsnew') #3 C:\xampp\htdocs\20200703\main\modules\whatsnew\blocks\block.new.php(39): b_whatsnew_show_common('date', Array) #4 C:\xampp\htdocs\20200703\main\kernel\block.php(191): b_whatsnew_show_date(Array) #5 C:\xampp\htdocs\20200703\main\modules\legacy\kernel\Legacy_BlockProcedure.class.php(245): XoopsBlock->buildBlock() #6 C:\xampp\htdocs\20200703\main\modules\legacy\kernel\Legacy_Controller.class.php(426): Legacy_BlockProcedureAda in C:\xampp\htdocs\20200703\main\modules\whatsnew\class\whatsnew_show_block_handler.php on line 93
Warning [PHP]: Declaration of & happy_linux_basic_handler::getInstance($dirname) should be compatible with & happy_linux_error::getInstance() in file C:\xampp\htdocs\20200703\main\modules\happy_linux\class\basic_handler.php line 84 (1)
Fatal [PHP]: Uncaught Error: Call to undefined method whatsnew_show_block_handler::happy_linux_build_cache() in C:\xampp\htdocs\20200703\main\modules\whatsnew\class\whatsnew_show_block_handler.php:93 Stack trace: #0 C:\xampp\htdocs\20200703\main\modules\happy_linux\include\functions.php(93): whatsnew_show_block_handler->__construct('whatsnew') #1 C:\xampp\htdocs\20200703\main\modules\whatsnew\include\functions.php(18): happy_linux_get_handler('show_block', 'whatsnew', 'whatsnew') #2 C:\xampp\htdocs\20200703\main\modules\whatsnew\blocks\block.new.php(55): whatsnew_get_handler('show_block', 'whatsnew') #3 C:\xampp\htdocs\20200703\main\modules\whatsnew\blocks\block.new.php(39): b_whatsnew_show_common('date', Array) #4 C:\xampp\htdocs\20200703\main\kernel\block.php(191): b_whatsnew_show_date(Array) #5 C:\xampp\htdocs\20200703\main\modules\legacy\kernel\Legacy_BlockProcedure.class.php(245): XoopsBlock->buildBlock() #6 C:\xampp\htdocs\20200703\main\modules\legacy\kernel\Legacy_Controller.class.php(426): Legacy_BlockProcedureAda in file C:\xampp\htdocs\20200703\main\modules\whatsnew\class\whatsnew_show_block_handler.php line 93 (1)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ。
該当するソースコード
class whatsnew_show_block_handler extends happy_linux_build_cache
{
var $_DIRNAME;
var $_DIR_MODULE;
var $_URL_MODULE;
var $_build;
var $_system;
var $_xoops_uid = 0;
var $_cache_id = null;
var $_cache_id_guest = null;
var $_TIME_PROHIBIT = 180; // 180 sec
var $_ICON_MAX_COL = 5;
var $_MODE_BUILD = 0;
var $_DEBUG_FORCE = false;
//---------------------------------------------------------
// constructor
//---------------------------------------------------------
function __construct( $dirname )
{
$this->happy_linux_build_cache(); 93行目
自分で試したこと
現在の環境は以下になります。
Distribution : XOOPS X(ten) 20181220
XC Legacyバージョン : XOOPS Cube Legacy 2.2.3 Beta 1
デフォルト・サイトテーマ : x-mas
デフォルトのテンプレート・セット : template
使用言語 : ja_utf8
デバッグモードを有効にする : PHPデバグ
オペレーティングシステム : Windows
サーバー : Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.4.10
ユーザーエージェント : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
PHPバージョン : 7.4.10
MySQLのバージョン : 10.4.14-MariaDB
色々ネットで調べてみて、親クラスのコンストラクターを呼び出す所でエラーみたいですが
以下のページを見つけて、3つの動作をしてみましたが、うまくいきません。
https://stackoverflow.com/questions/46890396/php-error-fatal-error-call-to-undefined-method-php-5-2-to-php-7
うまく修復できる方法やアドバイスを頂ければと思います。
どうかよろしくお願いいたします。