Существующий класс не найден с использованием XCache и PHP 5.3.2 - PullRequest
0 голосов
/ 28 февраля 2011

Я получаю самую странную проблему, используя XCache и PHP 5.3.2, есть класс 'Vb_Post', который не загружается PHP и выдает фатальную ошибку: Fatal error: Class 'Vb_Post' not found in /Users/mario/Sites/m.techspot/app/models/Vb/Comments.php on line 5

Если я запускаютот же код с PHP 5.2 и XCache 1.2.2 или PHP 5.3.2 и APC все работает нормально.Есть ли обходной путь / исправление к этому, и кто-нибудь знает, если это известная проблема, я погуглил как сумасшедший и не смог найти какие-либо решения, я читал некоторых людей, имеющих подобные проблемы, используя php 5.3.2 и APC, но похоже, что я страдаю от противоположного.

Я не знаю точно, когда появилась эта проблема, но она работала хорошо до недели назад, и никаких серьезных изменений кода не было.Та же проблема возникает на моем компьютере разработчика и на сервере, на котором запущено одно и то же упомянутое программное обеспечение.

Я почти уверен, что это как-то связано с XCache, так как при первом запуске все в порядке, ошибкапоявляется при последующих запросах.

Может ли быть какой-то скрытый символ, который вызывает эту проблему?

1 Ответ

0 голосов
/ 28 февраля 2011

ОК, я нашел решение этой проблемы. В верхней части класса Vb_Post я загружал некоторые классы, которые также ссылались на класс Vb_Post, по-видимому, это вызывало какой-то конфликт, который препятствовал загрузке класса при кэшировании.

Исправление: Перемещение require_once('SomeClass.php') внутри класса непосредственно перед его фактическим использованием.

...
public function someAction()
{
    require_once('SomeClass.php');
    var $sc = new SomeClass();
    ...
}
...

Итак, после борьбы с ними в течение недели, это лучшее решение, которое я придумала, надеюсь, это поможет кому-то еще.

...