2013-04-09 65 views
1

除了控制器,窗體,模型和視圖之外,我還想創建一個包含一些常用功能類的文件。如的common.php如何訪問自定義文件的數據庫

所以,做我需要爲我的這個自定義文件或有任何其他方式使用Zend的數據庫文件(配置/ local.php和配置/ global.php)

其他連接文件我應該在哪個文件夾下創建這個文件。

回答

1

錯誤的概念。創建一個YourNamespace\Stdlib - 包含通用功能的類庫。然後這些類將被注入他們需要的依賴關係。例如:

getServiceConfig() { 
    return array('factories' => array(
     'stdlib-dbstuff' => function ($sm) { 
      $dbStuff = new \YourNamespace\Stdlib\DbStuff(); 
      $dbStuff->setAdapter($sm->get('Zend\Db\Adapter\Adapter')); 
      return $dbStuff; 
     } 
    )); 
} 

見類的命名空間Zend\Stdlib的一些例子如下)

要使用Stdlib只需撥打您從ServiceManager需要的類。或者,您可以跳過ServiceManager並簡單地在Controller-Level上注入依賴項(這有點糟糕,這不是控制器的責任)。

$dbStuff = $this->getServiceLocator()->get('stdlib-dbstuff'); 
// alternatively 
$adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter'); 
$dbStuff = new \YourNamespace\Stdlib\DbStuff(); 
$dbStuff->setAdapter($adapter); 
+0

再次感謝山姆。 – 2013-04-09 08:42:16