我想在Page_controller中覆盖init()函数。我有一个DataExtension来扩展控制器。使用此处的功能http://doc.silverstripe.org/framework/en/reference/dataextension#object-extension-injection-points
但在延伸似乎不存在之前
Fatal error: Call to undefined method PageControllerExtension::beforeExtending()
这是我在扩展中的功能
function __construct() {
$self = $this;
$this->beforeExtending('init', function() use ($self) {
$themeFolder = $this->ThemeDir();
$tweaks = 'tweaks';
$CSSFiles = array(
$themeFolder . '/css/layout.css'
);
$JSFiles = array(
$tweaks . '/js/jquery-1.11.1.min.js',
$tweaks . '/js/jquery.unveil.js',
$tweaks . '/js/jquery.bxslider.js',
$tweaks . '/js/wow.js',
$themeFolder . '/js/load.js'
);
Requirements::set_combined_files_folder($themeFolder . '/combined');
Requirements::combine_files('screen.css', $CSSFiles);
Requirements::combine_files('screen.js', $JSFiles);
});
parent::__construct();
}
哪里出错?
答案 0 :(得分:0)
如果不扩展数据对象,则需要扩展Extension而不是DataExtension。