Отпечатване на код на клас на 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('/xxxxxxx/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