Это вопрос, связанный с заказной CMS, которую мы взяли на себя. Мы переместили серверы, а версия PHP изменилась с 5.3.8 на 5.4.1. С тех пор мы не можем заставить CMS работать и получаем эту ошибку:
Strict Standards: Non-static method Vox_Model_Setting::getMapper() should not be called statically, assuming $this from incompatible context in /var/www/vhosts/ds8760.dedicated.turbodns.co.uk/eera-bioenergy.com/application/modules/users/models/Role.php on line 71
Строка 71 гласит:
$settings = new Vox_Model_Setting(Vox_Model_Setting::getMapper()->findOne(array('module' => 'users')));
Может ли кто-нибудь сообщить, что может пойти не так?
Благодаря :)
edit: добавление getMapper()
public function getMapper()
{
if (null === self::$__mapper) {
self::setMapper(new Vox_Model_Setting_Mapper());
}
return self::$__mapper;
}
Просто измените свой тип метода, добавьте static
ключевое слово и вызовите, как вы делаете сейчас.
public function getMapper() {
if (null === self::$__mapper)
{
self::setMapper(new Vox_Model_Setting_Mapper());
}
return self::$__mapper;
}
в
public static function getMapper() { # see extra static keyword
if (null === self::$__mapper)
{
self::setMapper(new Vox_Model_Setting_Mapper());
}
return self::$__mapper;
}
PHP 5.4 поставляется со строковыми стандартными уведомлениями, активными по умолчанию, уведомлениями, которые по умолчанию отключены в 5.3, и, вероятно, были проигнорированы (поскольку большинство ppl имеют тенденцию делать это, хотя это плохая практика).
Чтобы быстро устранить проблему, отключите их (вы можете использовать это):
error_reporting (E_ALL ^ E_STRICT);
Или это в htaccess:
php_value error_reporting 30711
Тем не менее, я настоятельно рекомендую вам исправить их один за другим. То, что вы указываете там, можно устранить, добавив статическую функцию getMapper(), но это может затронуть другие части ваших скриптов (там, где их можно назвать не статически).
getMapper()
функцииgetMapper()
. Ошибка говорит, что это неstatic
и вы называете это статическим способом. Вы должны создатьobject
классаVox_Model_Setting
до вызова его нестатических методов