创建CakePHP自定义配置

时间:2011-10-06 14:51:53

标签: php cakephp cakephp-1.3

我正在尝试为我的应用存储配置设置。应该在整个应用程序中提供要存储的详细信息,并且应该可以更新它们。详细信息的示例包括徽标图像的链接和联系详细信息。

我的确是通过在数据库中存储细节,创建模型和控制器来开始的。但是,由于徽标位于每个页面上,因此需要在每次加载页面时查询数据库。

我已经阅读了有关Configure类的内容,但我无法理解它的工作原理。任何人都可以解释如何使用Configure将这些配置变量存储在文件中,读取它们并在文件中更新它们。我查看了烹饪书和API,但不是很清楚。

1 个答案:

答案 0 :(得分:2)

您可以使用名称作为编写设置的方式遍历app_controller的beforeFilter中的设置表。

像这样:

<?php 
    $settings = Cache::read('AppSettings');

    if(!$settings){
        $settings = $this->Settings->find('all');
        Cache::write('AppSettings', $settings);
    }

    foreach($settings as $setting){
        Configure::write('Settings.' . $setting['Setting']['name'], $setting['Setting']['value']);
    }
?>

所以你有一个包含字段id,name和value的数据库,其中name是用于获取配置的名称,value是你期望的值。

一行,其字段'name'的值为“sitename”,而字段'value'的值为“MySite”

可以使用Configure::read('Settings.sitename');调用并返回“MySite”

然后在设置模型中,您将Cache::delete('AppSettings');放入afterSave方法中 。这样,更新或添加记录时将破坏缓存,并重新缓存和重新配置设置。