Matthew Weier O’Phinney опубликовал краткое руководство по созданию SOAP, XML-RPC, JSON-RPC или AMF API на базе Zend Framework.
Я знал, что через ZF это сделать просто, но, оказалось, даже проще, чем я думал. Например, вот так выглядит создание XML-RPC-сервера:
1 2 3 |
Также не следует использовать для этих целей полноценный MVC — просто незачем проходить полный цикл диспатчеризации, если можно заменить его куда более производительным сервис-сервером:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class XmlRpc_Bootstrap extends Bootstrap { public function run() { $server = new Zend_XmlRpc_Server(); $server->setClass('My_Awesome_Api'); echo $server->handle(); } } $app = new Zend_Application( APPLICATION_ENV, array( 'bootstrap' => array( 'class' => 'XmlRpc_Bootstrap', 'path' => 'path/to/Bootstrap.php', ), 'config' => APPLICATION_PATH . '/configs/application.ini', ), ); $app->bootstrap() ->run(); |
Подробности читайте в оригинале статьи.
Дима says:
спасибо за перевод,
30 ноября 2009, 12:42но вот не понятно как правильно реализовывать My_Awesome_Api, так как в нем не доступна вся архитектура классов ZF, вот он скорее всего это будет наследник от модели, как в данном случае правильно провести подсоединение к БД?
Сергей Митрошин says:
В My_Awesome_Api будут доступны все классы ZF. Подсоединение к БД производится через application.ini или в классе XmlRpc_Bootstrap.
30 ноября 2009, 12:59Дима says:
а где в вашем примере лежит My_Awesome_Api?
30 ноября 2009, 13:07Сергей Митрошин says:
В примере он не лежит нигде
30 ноября 2009, 13:28Но вообще он должен лежать в library/My/Awesome/Api.php – следуя схеме именования классов PEAR/ZF.