组织模板功能

时间:2016-09-21 00:32:57

标签: php silverstripe

简短又甜蜜,我有一个扩展Page_Controller的控制器,其中包含大量自定义模板功能,我想“组织”并将此功能放入其他文件中。

class BookingPage extends Page
{

}

class BookingPage_Controller extends Page_Controller
{
    public function getMyTemplateVar() {}
    public function MyTemplateVar2($param) {}
    // x 1000~ more
}

我的问题是,有没有办法在全球范围内创建模板功能,而不仅仅是在特定的Page_Controller内?

我的OCD适合将所有内容放在一个文件中(控制器已经是3432行)

1 个答案:

答案 0 :(得分:0)

我设法完成了这样做:

class BookingPage extends Page {}
class BookingPage_Controller extends \MyNamespace\Template\Functionality {}

<强> \ myNameSpace对象\模板\功能

namespace MyNamespace\Template;

class Functionality extends \Page_Controller {

    public function ExternalAPI() {
        return new \MyNamespace\Rooms\ExternalRoomDataAPI();
    }
}

<强> \ myNameSpace对象\房间\ ExternalRoomDataAPI

namespace MyNamespace\Rooms;

class ExternalRoomDataAPI {
    public function HelloWorld() {
        $html = "Hello World";
        return $html;
    }
}

<强> MyTemplate.ss

$ExternalAPI.HelloWorld
// result: Hello World

有兴趣知道是否有更简洁的方法,只要您的最终类扩展Page_Controller或创建新对象并将其作为返回方式返回,您就可以通过字面扩展,扩展和扩展来以这种方式组织您的功能他们的方法/变量可以无限链接

相关问题