Strict Notice: Only variables should be passed by reference

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

01.11.2010 12:43

Если у вас при запуске Magento возникает такая ошибка - откройте index.php в корне сайта, найдите там:

error_reporting(E_ALL | E_STRICT);


и замените на

error_reporting(E_ALL);



Если у вас установлен eAccelerator, что просто отключить E_STRICT недостаточно.
В этом случае откройте файл lib/Zend/Db/Select.php
найдите там метод Zend_Db_Select::columns (примерно строка 246)
и замените:
$correlationName = current(array_keys($this->_parts[self::FROM]));

на
$arrayKeys = array_keys($this->_parts[self::FROM]);
$correlationName = current($arrayKeys);


#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

22.11.2011 20:37

Для Magento 1.6, видимо, ещё потребуется правка файла lib/Varien/Db/Adapter/Pdo/Mysql.php

Найдите там (примерно строка 2658)
$key = key(array_intersect_key($condition, $conditionKeyMap));

и замените на:
$key = array_intersect_key($condition, $conditionKeyMap);
$key = key($key);


Вообще, вместо всех этих правок лучше всего отключить eAccelerator (именно он является причиной проблем).
Для ускорения Magento вместо eAccelerator лучше использовать APC.

#3 Александр Миронов
  • отпизжен с форума, причина в профиле
  • Группа: Заблокирован
  • Сообщений: 258
  • Регистрация: 12.12.2010

22.11.2011 21:33

/lib/Varien/Db/Adapter/Pdo/Mysql.php
Вероятно так должно быть?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

22.11.2011 21:44

Да

#5 Александр Миронов
  • отпизжен с форума, причина в профиле
  • Группа: Заблокирован
  • Сообщений: 258
  • Регистрация: 12.12.2010

22.11.2011 21:52

у меня на строке 246 вот такой код:
$correlationNameKeys = array_keys($this->_parts[self::FROM]);
$correlationName = current($correlationNameKeys);

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

22.11.2011 21:54

Значит, программисты Magento в версии 1.6 уже исправили 246 строчку.
Однако в версии 1.6 нужна вторая заплатка.

#7 Александр Миронов
  • отпизжен с форума, причина в профиле
  • Группа: Заблокирован
  • Сообщений: 258
  • Регистрация: 12.12.2010

22.11.2011 21:59

То есть оставляю файл как есть.
Как проверить снова не появляется ли эта ошибка?

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

23.11.2011 05:45

Очевидно, эта ошибка либо записывается в журнал неполадок Magento, либо выводится на экран (при включенном Developer Mode).

Поделиться темой: