创建CakePHP自定义配置


Create CakePHP custom configuration

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

我确实是通过将详细信息存储在数据库中,创建一个模型和控制器来开始这项工作的。然而,由于徽标在每个页面上,这需要在每次加载页面时查询数据库。

我读过关于Configure类的文章,但我不能把它做得太好。有人能解释我如何使用Configure将这些配置变量存储在文件中,读取它们并在文件中更新它们吗。我看过烹饪书和API,但不是很清楚。

您可以在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是您期望的值

具有值为"sitename"的字段"name"和值为"MySite"的字段"value"的行

可以用Configure::read('Settings.sitename');调用,并返回"MySite">

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