2012-03-28 5 views
1

私はZend Frameworkを初めて使用しており、Zend_Queueで作業しようとしています。私はこのコードをブートストラップに入れましたが、例外がスローされています。 bootstrap.phpの内のコード:私はzendキューで作業しています。私はブートストラップにコードを書いてエラーを表示してくれました。誰でも助けてもらえますか?

<?php 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 

    protected function _initDatabase() { 
     $options = array(
      'name' => 'queue', 
      'driverOptions' => array (
       'host'   => '127.0.0.1', 
       'port'   => '3306', 
       'username'  => 'root', 
       'password'  => '', 
       'dbname'  => 'queue', 
       'type'   => 'pdo_mysql' 
      ) 
     ); 
    } 

    protected function _initQueue() { 
     $options = $this->getOptions(); 
     $queueAdapter = new Zend_Queue_Adapter_Db($options['queue']); 

     Zend_Registry::getInstance()->queueAdapter = $queueAdapter; 
    } 
} 

そして、これは私が取得していますエラーです:

Fatal error: 
    Uncaught exception 'Zend_Queue_Exception' with message 'Adapter options must be an array or Zend_Config object' in 
C:\wamp\library\ZendFramework\library\Zend\Queue\Adapter\AdapterAbstract.php:110 Stack trace: #0 
C:\wamp\library\ZendFramework\library\Zend\Queue\Adapter\Db.php(83): Zend_Queue_Adapter_AdapterAbstract->__construct(NULL, NULL) #1 
C:\wamp\www\queue2\application\Bootstrap.php(28): Zend_Queue_Adapter_Db->__construct(NULL) #2 C:\wamp\library\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(667): Bootstrap->_initQueue() #3 
C:\wamp\library\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(620): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('queue') #4 
C:\wamp\library\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(584): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL) #5 
C:\wamp\library\ZendFramework\library\Zend\Application.php(355): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NULL) #6 
C:\wamp\w in C:\wamp\library\ZendFramework\library\Zend\Queue\Adapter\AdapterAbstract.php on line 110 

答えて

1

あなたは_initQueue()と同じ方法に設定すると、全体ではなく$options配列を渡すされ$optionsを移動してみてください$options['queue']です。 application.iniに何かがない限り、$options['queue']は定義されていません。

試してみてください。

<?php 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 

    protected function _initQueue() { 
     $options = array(
      'name'   => 'queue', 
      'driverOptions' => array (
       'host'   => '127.0.0.1', 
       'port'   => '3306', 
       'username'  => 'root', 
       'password'  => '', 
       'dbname'  => 'queue', 
       'type'   => 'pdo_mysql' 
      ) 
     ); 

     $queueAdapter = new Zend_Queue('Db', $options); 

     Zend_Registry::getInstance()->queueAdapter = $queueAdapter; 
    } 
} 
+0

1は、(_initDatabaseのように見える)もの –

+0

感謝qをやっていない、私の問題は解決しました – curise

関連する問題