Intereting Posts
Пропустите знак процента (%) в URL-адресе и получите точное его значение, используя php Общие друзья Facebook Graph API Как вставлять твиттер-твиты .. Как поймать изображения с URL-адресов твитов и отображать фактические изображения? stdClass Объект и массив, как использовать php Настройка часового пояса в PHP с помощью DateTime / DateTimeZone Сценарий установки расширения Magento не будет запущен Как эффективно искать в Subarrays в PHP? Получить данные только из таблицы html, используемой preg_match_all в php Сортировка 3-мерного массива на 2-м уровне в зависимости от значений 3-го уровня API-интерфейс Freebase работает в браузере, но не работает с завитком CakePHP 3 загрузки файлов поставщиков Как получить все возможные комбинации многомерного массива сравнение даты и времени php Максимальное время выполнения 300 секунд превышено в pcntl_fork () Бит-манипуляция и восстановление MySQL в PHP

Как устранить ошибки php5 Strict?

После обновления моего PHP до 5.4.3 (WAMP server 2.2) мое веб-приложение, сделанное в CakePHP 1.3, показывает следующие ошибки в моем индексе:

Строгие стандарты: переопределение уже определенного конструктора для класса Object в C: … \ cake \ cake \ libs \ object.php в строке 63

Строгие стандарты: нестатический метод Configure :: getInstance () не следует называть статическим в C: … \ cake \ cake \ bootstrap.php в строке 49

Я обнаружил, что некоторые люди решают эту проблему, установив 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, но безуспешно.

Кто-нибудь знает, как я могу это решить? Я не могу обновить CakePHP из-за firebird.

Одним из изменений в php 5.4 является то, что E_STRICT теперь является частью E_ALL

Таким образом, в вашем /cake/bootstrap.php вы можете удалить E_STRICT из отчетов об ошибках:

 error_reporting(E_ALL ^ E_STRICT); 

и снова совместимы с версиями до версии 5.4.

Вместо того, чтобы модифицировать файлы ядра торта, которые отстойны, если вы хотите обновить версию вашего торта, зайдите в файл 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); 

который показан в принятом ответе на этот вопрос, не работал и дал бесконечный цикл, обнаруженный в ошибке JError для моего сайта Joomla.

Вы используете новую версию php. в php 5.4, E_STRICT является частью E_ALL

в торте 1.3, открыть файл /cake/bootstrap.php и изменить error_reporting, как это

 error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED); 

Если вы сражаетесь с PHP Strict предупреждениями в выпуске консоли 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(); ?> 

и загрузите его в свой веб-браузер, он скажет вам, какой файл INI используется, если вы его пропустили.

Также возможно, что файл htaccess устанавливает это значение через php_flag error_reporting , которое также может быть установлено для каждого каталога.

Файл bootstrap.php из папки (корневой) торт

 if (!defined('E_ALL')) { define('E_ALL', 8192); } 

Файл debugger.php из папки (root) cake \ libs

 error_reporting(E_ALL ^ ~E_STRICT ^ ~E_DEPRECATED);