簡體   English   中英

如何在Zend Framework 2上以本地配置訪問

[英]How to access at the local configuration on Zend Framework 2

我在local/config/xxx/config.inilocal/config/xxx/config_base.ini

如何在Zend Framework 2上在那里進行配置。我有ServiceProvider的實例,但是無法在這些配置下進行訪問。 它只准備好module.config.php (例如$config = $sm->get('Config');

我發現我可以用它來讀取一個ini文件:

$config = (new Zend\Config\ReaderIni())->fromFile(getcwd() . '/local/config/xxx/config.ini');

但是,然后如何合並這兩種配置?

為什么要對配置文件使用.ini擴展名? 如您所見, 有關高級配置技巧文檔,配置文件應存儲為.php文件。 它們包含保存您的配置鍵和值的數組,它們將從自動加載文件夾中自動讀取並與模塊配置文件合並。

一旦從所有模塊中聚合了配置,ConfigListener還將合並指定目錄(通常是config / autoload /)中的應用程序配置。

在這里,您還可以找到用於查找需要合並的文件的文件夾模式:

 // An array of paths from which to glob configuration files after // modules are loaded. These effectively overide configuration // provided by modules themselves. Paths may use GLOB_BRACE notation. 'config_glob_paths' => array( 'config/autoload/{{,*.}global,{,*.}local}.php', ), 

優點是您不需要單獨的文件讀取器,並且可以像處理其他配置一樣直接從服務管理器訪問自定義配置。

$config = $sm->get('Config');
$webhost = $config['my_param'];

另一個優點是,您可以將生產環境設置為緩存配置文件,這將大大提高引導過程的性能(讀取文件是一個緩慢的過程)。

我建議您將文件擴展名重命名為.php並按照文檔設置自定義配置值。

使用框架應用程序時,系統配置默認為config/application.config.php

/ config.php
return array(
    'webhost'  => 'www.ekio.rw',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.ekio.rw',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);

然后,

// Consumes the configuration array
$config = new Zend\Config\Config(include 'config.php');

// Display a configuration datum (results in 'www.ekio.rw')
echo $config->webhost;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM