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

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


weiss

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

В 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.

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

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