Silverstripe 3 - 使用DataExtension扩展Init()

时间:2014-10-05 15:19:03

标签: php silverstripe

我想在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();
    }

哪里出错?

1 个答案:

答案 0 :(得分:0)

如果不扩展数据对象,则需要扩展Extension而不是DataExtension。