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

Dynamic config file with advanced template

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

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

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

我不想将任何值硬编码到配置文件中。那么,我怎样才能完成这个任务呢?有什么想法吗?

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

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

看这里:Multi Tenant Multiple Database Setup

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

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

1 件事,你可能不能在任何地方使用任何特定于 yii 的函数,因为 Yii 应用程序在你启动它之前可用(我的意思是使用配置)所以你可能必须在 PHP直接。