我正在开发一个项目,要求我从数据库加载配置值
我有一个本地配置文件filters.local.php
我想删除它并将值放在数据库中,当应用程序加载而不是从autoload文件夹或任何其他配置文件中自动加载配置值时,我想从mergre配置来自数据库进入zend框架2配置。
反正有没有实现这个目标?
答案 0 :(得分:0)
使用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);
}