Отображение ошибок в PHP7 (Joomla)

d0ublezer0

Мой дом здесь!
Регистрация
21 Май 2009
Сообщения
367
Реакции
201
Не уверен, в тот ли раздел.
При включенном отображении ошибок
Код:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Joomla на PHP 7.0:
HEFq4C6BTae1EmM-3VGn3w.png


переключаюсь PHP 5.6 и вижу нормальное объяснение, где ошибка:
Код:
Fatal error: Cannot use object of type stdClass as array in W:\home\gmt\.gmt\geo\geo.php on line 331
правда в title страницы все равно текст из первого примера (0 - Cannot use object of type stdClass as array) но я хотя бы вижу на какой строке и в каком файле сбой.

Как это исправить и получать имя файла и номер сбойной строки? Почему в 7.0 за меня решили, что мне не важно, где сломался код? Или это поведение Joomla?
 
Попробуйте поменять Error reporting в панели управления Joomla в Global Configuration -> Server. Установите режим Maximum. И тогда система сообщит все ошибки включая строки и тд
 
Попробуйте поменять Error reporting в панели управления Joomla в Global Configuration -> Server. Установите режим Maximum. И тогда система сообщит все ошибки включая строки и тд
Нет, это не так - указанная настройка переключает уровень выдачи ошибок E_ALL, E_WARNING и т.д.
Но обработку вывода всё равно берет на себя движок.
Мне одно не понятно - почему в 5.6 такого нет, а в 7.0 - есть?
 
Нет, это не так - указанная настройка переключает уровень выдачи ошибок E_ALL, E_WARNING и т.д.
Но обработку вывода всё равно берет на себя движок.
Мне одно не понятно - почему в 5.6 такого нет, а в 7.0 - есть?
могу предположить что некоторые функции упразднили со времени появления php 5.6, возможно разработчики джумлы не все методы передели под новую версию php и ошибки выводятся так, как может это движок.
Для просмотра ссылки Войди или Зарегистрируйся
 
могу предположить что некоторые функции упразднили со времени появления php 5.6
в моём примере это обычное несовпадение типа: я обращаюсь к объекту как к массиву.
дело в чём-то другом.
 
в моём примере это обычное несовпадение типа: я обращаюсь к объекту как к массиву.
дело в чём-то другом.
Я имею ввиду может Джумла не умеет правильно выводить ошибки на php 7, может код движка не настолько универсален чтобы на 5.6 работать точно также как на php 7. Хотя ошибку то он вывел, только без подробностей...
 
Да, похоже, это все-таки Joomla
И я не одинок, Вот Gruz с этой проблемой столкнулся тоже: Для просмотра ссылки Войди или Зарегистрируйся
И вот Pulled Request Для просмотра ссылки Войди или Зарегистрируйся
 
int error_reporting ([ int $ level ])
The error_reporting () function sets the Для просмотра ссылки Войди или Зарегистрируйся directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script. If the optional level is not set, error_reporting () will just return the current error reporting level.
 
Can you post file geo\geo.php ?
Its probably because the Class name is either a generic class name, or the class is initialized wrongly. Find where that class is called....ex: $blah = new Geo(); or something
 
Назад
Сверху