2013-04-09 23 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

相关问题