Zend Framework Krixton_JsonRpc_Client и вызов метода - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь выяснить, что происходит ниже:

public function serviceAction(){
$config = Zend_Registry::get('config');

$client = new Zend_Http_Client();
$client->setAuth($config['api']['username'],$config['api']['password']);

$service = new Krixton_JsonRpc_Client($config['api']['endpoint'], $client);

switch($this->_getParam('task'))
{
   case 'test':
       if(!this->getParam('newsletter_id')){
            $this->_helper->json(array('sent'=>false,'error'=>'Newsletter ID is invalid, must be numeric'));
            return;
       }

       $request = $service->call('newsletter.send', array($this->_getParam('newsletter_id'),false));
       $this->_helper->json($request->result));
   break;

}

}

Я пытаюсь выяснить, как работает

`Zend_Registry::get('config')`, $client->setAuth and $service->call`

?

Я понимаю, _getParam('task') - это метод получения или публикации переменных, но не уверен насчет остальных.Я просмотрел некоторые документы Zend, но если бы кто-нибудь мог мне помочь, это было бы оценено!

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Zend_Registry::get('config') (в данном случае 'config' - это имя массива) вызывает данные, которые были сохранены в реестре , вероятно, в Bootstrap.php, чтобы сделать информацию в application.ini (файл конфигурации) доступен везде.

Bootstrap.php, вероятно, содержит нечто похожее на:

protected function _initRegistry() {

        //make application.ini configuration available in registry
        $config = new Zend_Config($this->getOptions());
        Zend_Registry::set('config', $config);
    }

$client->setAuth просто предоставляет учетные данные пользователя для Zend_Http_Client() HTTP LINK , которые были сохранены в файле конфигурации и доступны через массив $ config.

$service->call Я совершенно уверен, что это делает, потому что я не знаком с используемым классом (вероятно, обычай). Похоже, что запрос на новостную рассылку делается на основе 'id'.

2 голосов
/ 04 марта 2012

Там происходят две вещи, первая - Zend_Registry.get() позволяет получить значение, ранее зарегистрированное в реестре через Zend_Registry::set('key', $value).Обычно «config» - это конфигурация вашего приложения, которая представляет собой файл application.ini .

, в основном вы регистрируете config , используя метод начальной загрузки:

protected function _initConfig()
{
    $config = new Zend_Config($this->getOptions());
    Zend_Registry::set('config', $config);
    return $config;
}

Вторые - не что иное, как методы Zend_Http_Client.setAuth() используется для установки базовой HTTP-аутентификации, а call() - это внутренний метод вашего объекта Krixton_JsonRpc_Client.

Если вы хотите глубоко понять, как работают эти методы, вам следуетсначала прочитайте человека (особенно Zend_registry и Zend_Http_Client страниц), а затем внимательно прочитайте исходный код.

...