Существующий класс не найден с использованием 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();
...
}
...
Итак, после борьбы с ними в течение недели, это лучшее решение, которое я придумала, надеюсь, это поможет кому-то еще.