Перейти к публикации

[APC] [DLE API] Internal Zend Error - Missing class information


Рекомендованные сообщения

В APC есть баг 59298, который вроде как и не баг, т. к. проявляется только при плохом дизайне, а именно когда имеют место инструкции вида:


if (!class_exists('Foo')) {

	class Foo {

		// ...


	}

}

и инстанцирование происходит в более чем одном месте.

В DLE в файле api/api.class.php как раз есть такая, в связи с чем я изредка ловлю такой баг в случае заполнения выделенного лимита памяти APC. Важно то, что это начало происходить только тогда, когда я стал подключать api.class.php на форум под управлением IP.Board для получения доступа к этому API, в то время как API также используется и на сайте. Баг у меня появлялся и с PHP 5.3, и с 5.4, и с разными версиями APC (сейчас 3.1.13), в общем он древний и исправлять его вроде не собираются.

В связи со спецификой использования API, которая потенциально предполагает использование этого класса во многих местах, а также популярности APC, я думаю, что имеет смысл подумать над рефакторингом.

P. S. Версия DLE 9.6, хотя разницы по-моему нет, т. к. я не замечал каких-то изменений в api.class.php.

Изменено пользователем weiss
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...