Использование подклассов с Zend_Rest_Server
Zend_Rest_Server и Zend_Rest_Client патетически недостаточно документированы, так что я продолжаю сталкиваться с этими неприятно раздражающими проблемами.
Итак, чтобы упростить методы API, я бы вызвал Zend_Rest_Server() и затем установил класс сервера на "X", что, в свою очередь, расширило бы мой класс "api_server". И в моем классе api_server я бы поместил такие вещи, как аутентификация, обработка хеш-ключа и все такое.
Но как только я использую "class mdb extends api_server {" вместо просто "class mdb {", мое приложение api умирает. Без ошибок. Ничего в логах. нет выхода. Вот код:
$server = new Zend_Rest_Server();
$server->setClass("mdb");
$server->handle();
class mdb extends api_server { .... }
И как только я удаляю весь "extends api_server", он будет работать (хотя у меня нет никаких методов аутентификации для сервера, поэтому он не работает, но сервер работает и отвечает..
Так это какой-то недокументированный лимит Zend_Rest_Server() или я делаю что-то действительно глупое?
Это не касается автозагрузки, даже если мне потребуется файл, в котором хранится класс api_server, он не будет работать.
1 ответ
Очевидно, что если вы расширяете другой класс, вам нужно сначала определить его, поэтому правильный синтаксис будет следующим:
class mdb extends api_server { .... }
$server = new Zend_Rest_Server();
$server->setClass("mdb");
$server->handle();