Существующий класс не найден с использованием XCache и PHP 5.3.2

Я получаю самую странную проблему, используя 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 и БТР но похоже я страдаю от обратного.

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам