Строгие стандарты MAMP php5

Я пытаюсь установить для error_reporting значения E_ALL и ~E_STRICT в php.ini mamp.

Но это никак не влияет. Я подтвердил, что редактирую правильный файл, установив разные отчеты об ошибках, такие как E_NOTICE, и проверил phpinfo, чтобы убедиться в том же.

Но только ~E_STRICT не происходит.

Когда я посещаю свою cms (concrete5), она дает мне список строгих ошибок (вставка первых нескольких ниже):

Strict Standards: Non-static method Cache::get() should not be called statically in www/concrete/models/package.php on line 78

Строгие стандарты: нестатический метод Cache::key() не должен вызываться статически в www/concrete/libraries/cache.php в строке 117.

Строгие стандарты: нестатический метод Cache::getLibrary() не должен вызываться статически в www/concrete/libraries/cache.php в строке 121.

попытался установить для error_reporting значения E_ALL и ~E_STRICT в .htaccess, а также в файле index.php. ни один не работал.

Решение пожалуйста.


person kck    schedule 12.07.2012    source источник
comment
Почему вы пытаетесь подавить ошибки вместо того, чтобы их исправлять???   -  person PeeHaa    schedule 12.07.2012


Ответы (4)


В Concrete5 есть параметр, который подавляет отображение ошибок и предупреждений (и уведомлений, которые я полагаю) — в панели инструментов -> Система и настройки -> Среда -> Настройки отладки. Возможно, у вас есть этот набор, чтобы скрыть все ошибки/предупреждения, которые переопределяют ваши настройки в файле конфигурации.

Что касается комментария @PeeHaa о подавлении ошибок вместо их исправления, ну, это не так просто, потому что сама CMS Concrete5 имеет TON php, который будет генерировать уведомления. Я предполагаю, что это из-за кода, который был написан много лет назад, до того, как некоторые вещи устарели. Например, существует множество системных функций, которые вызываются статически, даже если функция не объявлена ​​как «статическая». Это было нормально в старых версиях PHP, но теперь это не одобряется. К сожалению, я не думаю, что вы можете что-то с этим поделать.

К сожалению, это один из компромиссов при использовании Concrete5. Это лучшая CMS, но не всегда самая сложная платформа для более продвинутых разработчиков.

person Jordan Lev    schedule 12.07.2012

Очень сложно заставить Concrete5 игнорировать эти ошибки и загружать страницу (включая панель инструментов). Лучше всего понизить версию PHP до последней версии 5.3.X, пока не будет выпущена версия, совместимая с PHP 5.4.X.

person CJ Dennis    schedule 24.07.2012

Я решил эту проблему, перейдя с mamp на xampp на своем imac.

проблема с mamp: это не позволяет нам использовать php 5.3, если у нас нет mamp pro

решение, которое я использовал: я перешел на xampp с php 5.3, и все работало гладко.

person kck    schedule 23.08.2012

Если MAMP игнорирует настройки в php.ini (например, E_STRICT), скорее всего, вы редактируете не тот файл. Вы можете увидеть, какой файл конфигурации загружается с помощью phpinfo();

Найдите эту строку: Загруженный файл конфигурации: /Applications/MAMP/bin/php/php5.4.4/conf/php.ini

Обратите внимание, как это выглядит в MAMP/bin на моей машине. При установке MAMP по умолчанию файлы конфигурации шаблона легко принять за живые файлы конфигурации.

E_STRICT не игнорируется MAMP, если он установлен в правильном месте.

person George Gardiner    schedule 27.02.2013