Доктрина с проблемой eAccelerator на веб-сайте Zend Framework 2
Проблема, которую я получаю с веб-сайта bulid в Zend Framework2 с Doctrine 2 в качестве ORM. Он отлично работает на локальном сервере. Но он выдает ошибку при развертывании на производственном живом сервере. Ниже приведена ошибка
"Класс X не является действительным объектом или сопоставленным суперклассом"
Может ли кто-нибудь иметь какое-либо решение для этого.
1 ответ
Я рассказал об этом в своем блоге некоторое время назад. По сути, это происходит потому, что eAccelerator удаляет аннотации docblock как "оптимизацию". Проблема в том, что Doctrine использует эти аннотации для отображения ваших сущностей.
Есть два возможных решения:
- Не используйте eAccelerator. Доступны гораздо лучшие инструменты opcache, например, APC или PHP, встроенный в OPcache (PHP 5.5+).
- Отключите это поведение в eAccelerator. Вы можете сделать это, скомпилировав eAccelerator с
--with-eaccelerator-doc-comment-inclusion
Отметьте или используйте более новую версию eAccelerator, которая по умолчанию отключает это поведение.