3

私の Web ホスティング プロバイダーは、5.2.17 から php 5.4 に変更すると言っており、php 5.4 を使用してローカルで自分のサイトを実行しようとしましたが、多くの問題が発生しました。

このような

厳格な基準: 非静的メソッド JError::isError() を静的に呼び出すべきではありません。 $this が D:\xampp\htdocs\indoor\libraries\joomla\application\application.php 行 721 の互換性のないコンテキストからのものであると仮定します。

そのため、1.5 に近い joomla バージョンをアップグレードする必要があります。現在、1.5.24 を使用しています。

4

4 に答える 4

2

厳密な標準モードは、コードが技術的に正しくない特定のことを実行したときに警告メッセージをスローするように指示するPHP設定です。

ただし、PHPはこれらの問題に対処できます。質問のメッセージに従って、PHPはこの場合のコードについて推測し、続行することができます。

これらの厳密なモードの警告は常に存在します。5.2ではなく5.4で取得する理由は、5.4ではデフォルトで有効になっているのに対し、5.2ではデフォルトでオフになっているためです。

基本的に、新しいバージョンごとに、PHPは時代遅れまたは不十分なプログラミング慣行について徐々に厳しくなっています。これは一般的には良いことですが、アップグレードすると古いコードに問題が残ります。

ただし、厳密モードは必須ではありません。無効にすることができます。したがって、厳密モードに関する警告しか表示されない場合、問題に対処する最も簡単な方法は、モードをオフにすることです。

これは、PHP.iniまたは.htaccessファイルで、またはPHP自体で。を使用して行うことができますini_set()

  • PHP.ini:error_reporting=30719
  • .htaccess:php_value error_reporting 30719
  • PHPコードで:error_reporting(E_ALL & ~E_STRICT);

(30719はE_ALL(32767)からE_STRICT(2048)を引いたものに相当しますが、E_ALLおよびE_STRICTという名前はiniファイルでは無効であるため、数値を使用する必要があります)

一般に、システムを厳密モードの警告を発生させないソフトウェアにアップグレードすることをお勧めします。たぶん、Joomlaの新しいバージョンがこれに役立つでしょう。ただし、短期的には、これにより厳密モードの警告が表示されなくなり、新しいPHPバージョンへの移行に役立つことが期待されます。

お役に立てば幸いです。

于 2013-02-14T10:14:34.243 に答える
0

はい、joomla 1.5 のセキュリティ更新プログラムがないため、今すぐ joomla のバージョンをアップグレードすることをお勧めします。また、開発されたすべての新しい拡張機能は joomla 2.5 と互換性があり、1.5 には使用できないことに注意してください。

于 2013-02-19T07:55:25.803 に答える
0

PHP の厳格な基準:

"Non-static method JTable::getInstance() should not be called statically, assuming $this from incompatible context"

ソース: http://mytecharticle.com/?p=1484

于 2014-06-02T02:29:40.213 に答える
0

これは、グローバル関数を静的に呼び出すための内部 joomla エラーです。デバッガーを使用して、デバッグ モードでページを実行してください。

于 2013-02-14T08:37:28.203 に答える