PHP= 5.4.3(WAMPサーバー2.2)にアップグレードした後、CakePHP 1.3で作成したWebアプリでは、インデックスに次のエラーが表示されます。
厳格な標準:C:...\cake\cake\libs\object.phpの63行目のクラスオブジェクトの定義済みコンストラクターの再定義
厳格な標準:非静的メソッドConfigure :: getInstance()は、49行目のC:...\cake\cake\bootstrap.phpで静的に呼び出さないでください。
一部の人々は、error_reporting
php.iniでE_ALL & ~E_STRICT
。
コンピューターにある両方のphp.iniファイル(C:\ wamp\bin\php\php5.4.3およびC:\ wamp\bin\Apache\apache2.4.2\bin)でそれを行いましたが、問題は解決しませんでした。
私もphp_value error_reporting 6143
C:...\cake.htaccessにありますが、成功していません。
誰もこれを解決する方法を知っていますか? firebirdが原因でCakePHPをアップグレードできません。
PHP 5.4の変更点の1つは、E_STRICTがE_ALLの一部になったことです。
したがって、/ cake/bootstrap.phpで、エラー報告からE_STRICTを削除できます。
error_reporting(E_ALL ^ E_STRICT);
5.4以前のバージョンとの互換性を確保します。
Cakeのコアファイルを変更する代わりに、ケーキのバージョンを更新するのは面倒ですが、Config/core.phpファイルに移動して、エラーハンドラーの設定を探します。
Configure::write('Error', array(
'handler' => 'ErrorHandler::handleError',
'level' => E_ALL & ~E_DEPRECATED,
'trace' => true
));
「レベル」を次のように置き換えます。
...
'level' => E_ALL & ~E_STRICT & ~E_DEPRECATED,
...
交換してください
error_reporting = E_ALL
あなたのphp.iniで、
error_reporting = E_ALL & ~E_STRICT
私のために
error_reporting(E_ALL ^ E_STRICT);
この質問に対する受け入れられた答えに示されているものは機能せず、私のJoomla WebサイトでJErrorで検出された無限ループエラーを返しました。
新しいphpバージョンを使用しています。 PHP 5.4では、E_STRICTはE_ALLの一部です
cake 1.3では、ファイル/cake/bootstrap.phpを開き、error_reportingを次のように変更します
error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);
PHP Cakeコンソール出力での厳格な警告と戦っている場合は、_app/config/core.php
_を見てください。
CakePhp 1.3では、error_reporting(...)
は_'log'
_オプションで上書きされるため、必ず_E_STRICT
_を除外してください:
_/**
* CakePHP Log Level:
*
* In case of Production Mode CakePHP gives you the possibility to continue logging errors.
*
* The following parameters can be used:
* Boolean: Set true/false to activate/deactivate logging
* Configure::write('log', true);
*
* Integer: Use built-in PHP constants to set the error level (see error_reporting)
* Configure::write('log', E_ERROR | E_WARNING);
* Configure::write('log', E_ALL ^ E_NOTICE);
*/
Configure::write('log', E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
_
正しいphp.iniファイルを更新したことを確認してください-次のコードでルートディレクトリにphpファイルを作成する場合
<?php
phpinfo();
?>
webブラウザにロードすると、使用していないiniファイルが表示されます。
Htaccessファイルがphp_flag error_reporting
値を介してその値を設定している可能性もあります。これはディレクトリごとに設定することもできます。
フォルダー(root)cakeからファイルbootstrap.php
if (!defined('E_ALL')) {
define('E_ALL', 8192);
}
フォルダー(root)cake\libsからファイルdebugger.php
error_reporting(E_ALL ^ ~E_STRICT ^ ~E_DEPRECATED);