我正在研究ZF2,并且在如何将Zend \ Config与Zend \ Db一起使用以手动建立连接方面遇到了一些困惑。
在手册的不同位置,都有不同格式的数据库配置。
此示例显示了一个平面数组作为配置格式:https : //packages.zendframework.com/docs/latest/manual/en/modules/zend.db.adapter.html
$adapter = new Zend\Db\Adapter\Adapter(array(
'driver' => 'Mysqli',
'database' => 'zend_db_example',
'username' => 'developer',
'password' => 'developer-password'
));
尽管此格式显示了一种嵌套格式:https : //packages.zendframework.com/docs/latest/manual/en/modules/zend.config.introduction.html
$configArray = array(
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
我期望发生的事情是我可以像这样调用新的数据库适配器,但这会引发异常:
$config = new Zend\Config\Config(
array(
'db' => array(
'adapter' => 'Mysqli',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
)
);
$adapter = new Zend\Db\Adapter\Adapter($config->db);
我最终要做的是:
$config = new Zend\Config\Config(
array(
'db' => array(
'driver' => 'Mysqli',
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'database' => 'mydatabase'
)
)
);
$adapter = new Zend\Db\Adapter\Adapter($config->db->toArray());
是否有更好的方式来实现我要实现的目标而无需求助于服务经理?
忽略Zend Config简介页面上的示例,该示例仅显示了如何从PHP数组制作配置对象,该数组的结构并不意味着要特别显示任何内容。
由于您不想使用服务管理器,因此需要将参数传递给期望的结构中的适配器类。它期望一个数组,一个配置对象将不起作用。您已经弄清了数组的结构是什么,所以这就是您需要使用的。
我认为文档中的此页面:http : //framework.zend.com/manual/2.3/en/tutorials/tutorial.dbadapter.html(“基本设置”部分)提供了对服务管理器方法的更好解释,该方法至少我是在MVC应用程序中做到这一点的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句