是否可以根据config.yml或_config.php中的条目激活或停用模块?
假设我已经构建了一个图像库模块,但不希望它在网站上显示,是否可以在配置文件中取消激活?
答案 0 :(得分:4)
仅当模块提供了执行此操作的功能时。
您可以添加自己的private static $enable_module = true
class MyClass extends Object
{
private static $enable_module = true;
public function doMyThing()
{
if (!Config::inst()->forClass('MyClass')->enable_module) {
return false;
}
// do stuff here
}
}
然后您可以通过YML
禁用它MyClass:
enable_module: false
会禁用它。
对于模板,您可以添加
public function getGalleryEnabled() {
return Config::inst()->forClass('MyClass')->enable_module;
}
到您的Page_Controller
课程然后
<% if $GalleryEnabled %><% include MyGallery %><% end_if %>
最佳做法是:永远不会在现场网站上发展
答案 1 :(得分:3)
SilverStripe扫描webroot中的所有目录以查找模块。如果您将一个名为manifest_exclude
的文件放在任何目录中,它就不会被扫描而不会被包含在内;自动加载器无法找到它,如果不手动包含文件,则无法调用您的类。