如何使用zend框架读取控制器上的application.ini


How could read application.ini on controller using zend framework

我在application.ini中有这些行

如何读取user在我的控制器

resources.doctrine.dbal.connections.default.parameters.driver   = "pdo_mysql"
resources.doctrine.dbal.connections.default.parameters.dbname   = "zc"
resources.doctrine.dbal.connections.default.parameters.host = "localhost"
resources.doctrine.dbal.connections.default.parameters.port = 3306
resources.doctrine.dbal.connections.default.parameters.user = "root"
resources.doctrine.dbal.connections.default.parameters.password = "123456"

我使用这段代码,但它返回null

$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
 $user = $bootstrap->getOption('user');
var_dump($user);
编辑:

如何读取所有连接选项?

我觉得你应该用

$this->getInvokeArgs('bootstrap');

有关更多信息,请参阅手册中的本章。

$conf = $bootstrap->getOption('resources');
$dbConf = $conf['doctrine']['dbal']['connections']['default']['parameters'];

不如这样写:

$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
$connectionParams = $config->resources->doctrine->connections;

或者在Bootstrap期间,在BootstrapZend_Registry中创建并保存此$config对象,以便稍后在控制器中检索。

这是你的控制器。

$bootstrap = $this->getInvokeArg('bootstrap');
$appinidata = $bootstrap->getOptions();
$user=$appinidata['resources']['doctrine']['dbal']['connections']['default']['parameters'] ['user'];

这应该打印"root"。

print_r($user);

要获取Doctrine容器资源,只需使用:

$bootstrap = $this->getInvokeArg('bootstrap');
$doctrine = $bootstrap->getResource('doctrine');

从那里您可以深入到默认连接的用户名(如果需要,您可以指定连接,只需在调用getConnection时传递连接的名称):

$username = $doctrine->getConnection()->getUsername();

在这种情况下,您应该使用Zend_Config_Ini class

$config = new Zend_Config_Ini('/path/to/config.ini','staging',$options);

第二个参数是一个section在INI文件应该被加载;第三个参数是允许修改加载文件的关键。

你可以这样输出value user:

$config->resources->doctrine->dbal->connections->default->parameters->user;

您可以在index.php的公共文件夹中使用set方法设置任何变量,如下所示我们

$config = 'test'; Zend_Registry:设置("配置"配置美元);

一旦变量被设置,那么你可以通过以下方法进入任何控制器/模型

Zend_Registry:获得("配置");

希望它有帮助!!