带有高级模板的动态配置文件

时间:2015-01-25 10:31:02

标签: php yii2 yii2-advanced-app

我想在运行时动态创建配置文件。我在数据库中有一个名为Settings的表。它的结构如下:

|Column     |Type    |Length|
|id         |int     |11    |
|key        |varchar |100   |
|value      |varchar |255   |
|created_at |datetime|      |
|updated_at |datetime|      |

现在,当应用程序第一次启动时,应该检查它是否连接到数据库。如果没有,则应将其重定向到installer页面。用户将输入必要的详细信息,并相应地生成配置文件,相同的数据将存储在Settings表中以备将来使用。

我不想将任何值硬编码到配置文件中。那么,我该如何完成这项任务呢?有什么想法吗?

我想到了一个主意。如果我在params-local.php文件中查找名为installed的值为true的参数,该怎么办?如果存在,我们说应用程序已成功安装,否则我们会将用户带到installer页面。

1 个答案:

答案 0 :(得分:1)

你总是可以使用闭包(匿名函数)来获得你想要的任何类型的参数。

见这里:Multi Tenant Multiple Database Setup

我要做的是使用像memcached这样的缓存服务器,确保在从数据库中读取值后缓存这些值,你真的不希望一遍又一遍地运行相同的查询。然后使用闭包将您已从DB读取和缓存的数据合并到您仍然使用相同配置文件时的任何默认值。

如果您真的想在index.php文件中加快速度,那么在阅读配置时,您可以按照自己的方式创建自己的配置数组(我仍然会使用memcached)并使用该配置启动应用程序。配置文件基本上只是启动应用程序时使用的数组。

1件事,您可能无法在任何一个地方使用任何yii特定功能,因为Yii应用程序将在您启动它之后可用(我的意思是配置),因此您可能必须直接在PHP中创建函数。