/** * Initialize server components. Lightweight implementation of init() method * * @param string $adapterCode Adapter code * @param string $handler OPTIONAL Handler name (if not specified, it will be found from config) * @return Mage_Api_Model_Server */ public function initialize($adapterCode, $handler = null) { /** @var $helper Mage_Api_Model_Config */ $helper = Mage::getSingleton('api/config'); $adapters = $helper->getActiveAdapters(); if (isset($adapters[$adapterCode])) { /** @var $adapterModel Mage_Api_Model_Server_Adapter_Interface */ $adapterModel = Mage::getModel((string) $adapters[$adapterCode]->model); if (!$adapterModel instanceof Mage_Api_Model_Server_Adapter_Interface) { Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.')); } $this->_adapter = $adapterModel; $this->_api = $adapterCode; // get handler code from config if no handler passed as argument if (null === $handler && !empty($adapters[$adapterCode]->handler)) { $handler = (string) $adapters[$adapterCode]->handler; } $handlers = $helper->getHandlers(); if (!isset($handlers->{$handler})) { Mage::throwException(Mage::helper('api')->__('Invalid webservice handler specified.')); } $handlerClassName = Mage::getConfig()->getModelClassName((string) $handlers->{$handler}->model); $this->_adapter->setHandler($handlerClassName); } else { Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.')); } return $this; }