我正在开发一个插件,我正在尝试找到最好的方法来为它添加一组默认配置选项,这些选项会在加载插件时自动使用,但也可以为特定应用自定义它们
我很难找到关于Cake 2.0 +
的任何好文档大多数解决方案似乎涉及在主应用程序引导程序中配置某些内容或在主应用程序中创建配置文件,这似乎是一个坏主意,因为如果您忘记执行任何这些操作或不正确地执行它们,该插件将无法正常工作,它依赖于“外部”应用程序,这似乎不对。
与此同时,让用户在插件中编辑某种配置文件似乎也是一个坏主意,因为它们会篡改插件本身。
最好的方法是什么(或者每个人通常做什么)?
答案 0 :(得分:1)
看看这个
http://api.cakephp.org/2.4/class-Configure.html
我试图弄清楚同样的事情,然后我在Twitter插件中看到它。他们在插件文件夹
中有自己的配置文件您需要在文件中放置一个$ config变量。它没有做任何事情,但如果你不这样做,Cake会抱怨。
此设置适用于我目前正在开发的插件。
示例:
/Plugin/CakeCommerce/config/config.php
$config = '';
Configure::write('CC.default_email' , array('admin@server.com'=>'Server Admin'));
加载配置文件。在你的插件AppController中的__construct调用中执行此操作。
class CakeCommerceAppController extends AppController {
public function __construct($request = null, $response = null)
{
parent::__construct($request, $response);
Configure::load('CakeCommerce.config' , 'default' , false);
}
}
答案 1 :(得分:0)
您应该将配置设置放在Plugins/PluginDirectory/Config/bootstrap.php
中的插件引导程序文件中。
然后在加载插件时,用户可以选择是否使用插件的引导程序文件(参见CookBook)。这似乎是全部或全部,但您确实可以使用默认配置设置,因此用户不必自己创建任何配置设置。
我找到了一个插件开发article on the bakery并找到了这个注释:
注意:请注意配置设置,因为插件配置文件会覆盖匹配的应用设置,最好使用插件前缀命名设置
这对我来说建议您不能从应用程序的引导文件中覆盖单个插件设置。用户必须改为修改插件的引导程序文件。
(文章相当陈旧,似乎是旧版蛋糕,所以我不知道最近版本中是否有变化。像你一样,我很难找到关于这个主题的更多信息)