没有数据库的CakePHP持久数据存储(配置文件)?

时间:2013-12-05 21:19:08

标签: php cakephp web-applications web web-config

我正在构建一个CakePHP应用程序,我想存储和修改一组可由管理员自定义的全局设置。这些设置只有一个共享实例,因此数据库中的单行似乎有点矫枉过正,感觉不对。我认为配置文件更贴切,并且正在查看CakePHP的Configure :: read和Configure :: write方法,但后一种方法不会将更改保留在配置文件中。

是否有其他适当或广泛使用的方法?或者我应该只使用一个包含单列的表(我真的不想做OCD!)

3 个答案:

答案 0 :(得分:3)

CakePHP可以将更改写入文件,默认读取器称为PHPReader,它从php配置文件中读取。只需确保使用预期的格式。加载配置文件后,您可以使用上面列出的读写功能更改值,然后在完成后转储更改。

// Load my_config.php using the 'default' reader object.
Configure::load('my_config', 'default');

// Dump values into 
Configure::dump('my_config.php', 'default');

答案 1 :(得分:1)

您应该查看Redis store。它基本上等同于键值对配置文件,但它存储在一种类型的数据库中,因此可以从任何地方访问它,以防您需要扩展。它也非常快。

我发现将可变配置数据保存在文件中通常不是一个好主意,因为当您想要将应用扩展到多个服务器时会出现大量问题。

答案 2 :(得分:1)

应用程序往往会在添加功能时获得更多设置,因此我通常会提前计划,而不是为应用程序当前的每个设置创建一个包含列的表,然后在添加更多设置时添加列,创建表将设置存储为唯一设置名称和值对:create table settings (id int unsigned primary key auto_increment, name varchar(255) unique not null, value varchar(255) not null)。因此,对于每个设置,您的数据库中都有一行。