2012-03-04 70 views
0

我想弄清楚下面發生了什麼:Zend框架Krixton_JsonRpc_Client和呼叫方法

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

這裏發生了兩件事,第一件是Zend_Registryget()允許您通過Zend_Registry::set('key', $value)獲得先前在註冊表中註冊的值。通常,'config'是您的應用程序配置,它是application.ini文件。

基本上,你會使用這種方法,引導註冊配置

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的內部方法。

如果你想深入瞭解這些方法是如何工作的,你應該首先閱讀man(特別是Zend_registryZend_Http_Client頁),然後仔細閱讀源代碼。

2

Zend_Registry::get('config')(「配置」在這種情況下,一個數組的名字)是回顧,是保存到registry數據,大概在Bootstrap.php使application.ini(配置文件)中的信息隨處可見。

的bootstrap.php中可能caontains類似於:

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已存儲的配置文件中,並通過$配置陣列訪問。

$service->call我很確定這樣做是因爲我不熟悉正在使用的類(可能是自定義)。它看起來像一個通訊的請求是基於'id'。