Silverstripe - 在配置中打开或关闭模块
Silverstripe - Turn modules on or off in config
是否可以根据 config.yml 或 _config.php 中的条目激活或停用模块?
假设我已经构建了一个图片库模块,但还不想在网站上显示它,是否可以在配置文件中将其停用?
仅当模块提供了这样做的功能时。
您可以添加自己的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
class 然后
<% if $GalleryEnabled %><% include MyGallery %><% end_if %>
最佳做法是:永远不要在现场开发
SilverStripe 扫描 webroot 中的所有目录以查找模块。如果您将名为 manifest_exclude
的文件放在任何目录中,它将不会被扫描并且不会被包含;自动加载器找不到它,如果不手动包含文件,您将无法调用 class。
是否可以根据 config.yml 或 _config.php 中的条目激活或停用模块?
假设我已经构建了一个图片库模块,但还不想在网站上显示它,是否可以在配置文件中将其停用?
仅当模块提供了这样做的功能时。
您可以添加自己的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
class 然后
<% if $GalleryEnabled %><% include MyGallery %><% end_if %>
最佳做法是:永远不要在现场开发
SilverStripe 扫描 webroot 中的所有目录以查找模块。如果您将名为 manifest_exclude
的文件放在任何目录中,它将不会被扫描并且不会被包含;自动加载器找不到它,如果不手动包含文件,您将无法调用 class。