从数据库加载Zend Framework 2配置

时间:2017-01-06 10:16:14

标签: php zend-framework2 config

我正在开发一个项目,要求我从数据库加载配置值

我有一个本地配置文件filters.local.php我想删除它并将值放在数据库中,当应用程序加载而不是从autoload文件夹或任何其他配置文件中自动加载配置值时,我想从mergre配置来自数据库进入zend框架2配置。

反正有没有实现这个目标?

1 个答案:

答案 0 :(得分:0)

使用Zend Config Writer

使用Zend Config Writer,您可以使用数据库中的值编写配置文件。

示例:

  • 在你的控制器中

    <html>
      <head><title>Test</title></head>
      <body>
        <script type="text/javascript">
          var keynum, lines = 1;
    
          function limitLines(obj, e) {
            // IE
            if(window.event) {
              keynum = e.keyCode;
            // Netscape/Firefox/Opera
            } else if(e.which) {
              keynum = e.which;
            }
    
            if(keynum == 13) {
              if(lines == obj.rows) {
                return false;
              }else{
                lines++;
              }
            }
          }
          </script>
        <textarea rows="4" onkeydown="return limitLines(this, event)"></textarea>
      </body>
    </html>
    
  • 当您在浏览器中访问write-filters-config时,您会看到Zend Config Writer将使用php数组创建filters.local.php文件。

  • 您可以在该操作上创建一个cronjob,以便filters.local.php随时更新

  • 之后,当然,您可以将配置文件读入您​​的应用程序。您将从配置文件中读取过滤器,每次都避免数据库查询

    public function writeFiltersConfigAction(){
        $config = new \Zend\Config\Config(array(), true);
    
        $config->filters = array();
    
        $citiesArray = array( 1 => Paris, 2=>London, 3=>Berlin); // Of course, these values can be taken from database
    
        $config->filters->cities = $citiesArray;
    
        $writer = new \Zend\Config\Writer\PhpArray();
        $writer->toFile('config/autoload/filters.local.php',$config);
     }