6

PHP をバージョン 5.4 に更新した後、次のエラーが発生します。

Strict Standards: Non-static method Debugger::invoke() should not be called statically, assuming $this from incompatible context in /usr/share/php/cake/libs/debugger.php on line 575 
Strict Standards: Non-static method Debugger::getInstance() should not be called statically, assuming $this from incompatible context in /usr/share/php/cake/libs/debugger.php on line 575

私はすでに次の解決策を試しました

CakePHP でエラー報告を無効にしているときのエラー

php5-curl パッケージをインストールした後、Cakephp が機能しません(プロジェクトをベイクしたため、「Cake」フォルダが見つかりません)

Wampserver cakephp 1.3 厳密な標準エラー

php5 の厳密な標準エラーを解消するには?

PHP 5 厳格な標準エラーを無効にする

https://stackoverflow.com/questions/11799085/turn-off-php-strict-standards?lq=1 (エラーをオフにできませんでした)

Cake のキャッシュ、Web ブラウザーのキャッシュ、Cookie をクリアし、変更ごとにサーバーを再起動しました。プライベート ブラウジングや chrome、firefox、つまりも試してみました。

4

2 に答える 2

8

これは、このアプリが古いバージョンの CakePHP で構築されているためだと思います。このバージョンでは、非推奨の関数が使用されている可能性があります。あなた (または他の誰か) が Cake を新しい安定版ブランチにアップグレードできたら最高です。現在、core.php でこれを試してみると、エラー報告から E_STRICT を削除できます。

つまり、app/Config/core.php に移動します

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => E_ALL & ~E_DEPRECATED,
    'trace' => true
));

として置き換えます

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => E_ALL & ~E_STRICT & ~E_DEPRECATED,
    'trace' => true
));
于 2013-07-26T04:31:23.037 に答える
4

error_reporting 関数を変更すると、これを修正できます。ただし、cakephp はいくつかの場所でこれらのフラグを設定しているようです。そのため、解決策がうまくいかなかった可能性があります (私も同じことをしました)。

「error_reporting」をソース全体で検索すると、いくつかのファイルで使用されていることがわかります。可能な限りフラグ「~E_STRICT」を追加してください。例えば:

error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);

/cake/bootstrap.php、/cake/libs/configure.php、/cake/console/cake.php などの場所に表示されます。E_STRICT を除外するようにすべて変更したところ、問題は修正されました。

于 2016-01-21T08:43:02.407 に答える