Печать кода класса приложения Cakephp на странице и ошибка spl_autoload_register

Я переместил установку CakePHP с моего сервера разработки на рабочий сервер (файл конфигурации и htaccess обновлены).

Рабочий сервер использовал более старую версию PHP, и я попросил хост обновить ее. После того, как они обновили версию PHP, сайт печатает код php на веб-странице (Class : /lib/Cake/core/app). Также отображается фатальная ошибка внизу страницы, ниже

Неустранимая ошибка: необработанное исключение «LogicException» с сообщением «Переданный массив не указывает существующий статический метод (класс« Приложение »не найден)» в /xxxxxxx/lib/Cake/bootstrap.php: 154 Трассировка стека: # 0 / xxxxxxx / lib/Cake/bootstrap.php(154): spl_autoload_register(Array) #1 /xxxxxxx/app/webroot/index.php(92): include('/xxxxxx/pu...') #2 {main} добавлено /xxxxxxx/lib/Cake/bootstrap.php в строке 154

Пожалуйста помоги..


person Renjith    schedule 05.04.2013    source источник


Ответы (2)


Вы проверили, действительно ли изменилась версия PHP, вы проверили (с помощью phpinfo())?

person toby1kenobi    schedule 05.04.2013
comment
Спасибо за ответ Да, он изменился, я проверил с помощью phpinfo() Версия PHP 5.3.23 Centos LiteSpeed ​​V6.1 - person Renjith; 05.04.2013
comment
это где-то мы можем видеть? - person toby1kenobi; 05.04.2013

Судя по всему, CakePHP не смог найти или загрузить класс App (/xxxx/lib/Cake/core/App.php).

Однако возможно, что после обновления пути изменились (если вы используете CakePHP 2.3.1) строка 134 того же файла использует это для загрузки этого файла:

require CAKE . 'Core' . DS . 'App.php';

Если файл отсутствует или не может быть загружен, сценарий должен остановиться на этом этапе.

Чтобы проверить правильность ваших путей, попробуйте отладить этот путь;

 echo CAKE . 'Core' . DS . 'App.php'; die();

Если этот путь правильный (я предполагаю, что это так, иначе require уже должен был бы остановить скрипт, как указано выше), что-то не так с содержимым файла App.php . Возможно, что-то повредило файл (частичная загрузка?) или неправильные окончания строк заставили PHP интерпретировать его неправильно.

Если на странице действительно отображается полный исходный код класса App, возможно, вы (непреднамеренно) используете «короткие открывающие теги» php, и это было отключено в новой конфигурации <?, что может быть причиной, например, если пробел есть пробел после <? - <? PHP

Подробнее о коротких открывающих тегах можно узнать здесь:

Можно ли использовать короткие теги PHP?

person thaJeztah    schedule 05.04.2013