大家好!我有一个关于Kohana 3的新问题,或者是关于模块结构。我开发了一个名为Textblock的小模块。这是关于一个普通页面或插入到网站布局的小插图(例如问候语或口号,公司名称)。它包含控制器和模型。模型继承了Sprig_MPTT。和一个功能,我想实现是一个可能能够调用此模块是这样的:Kohana 3模块结构问题
$textblock = Textblock::get_single(1); //by id
$children = Textblock::get_children_of(4); //id of parent
,而不是
$textblock = Sprig::factory('Textblock')->get_single(1);
$children = Sprig::factory('Textblock')->get_children_of(4);
这些方法在Model_Textblock类定义为static
。
所以,我做了一个包装类Textblock
,它继承了Model_Textblock
。例如,如果我突然想要更改Sprig to Jelly?前景不会改变。另一个优势是,对于想要使用此模块的任何人(例如,它可能是团队中的另一位程序员),更清晰。
但是,如果我的方式不正确,有一个疑问...所以,这个问题本身:是建议一个正确的方式来组织我的模块?或者最好保持普通Sprig::factory('Textblock')
需要Textblock的功能,删除额外的包装类,并删除static
?
感谢您的评论。是的,我想让我的模块在任何地方都不可改变。当Textblock没有继承Model_Textblock时,我喜欢这个想法,因为我认为一个模块必须为最终用户提供一组包含最必要逻辑的有限方法。你怎么看待这件事?关于多个模型:通常我每个实体都有一个模型。 – franzose 2010-09-06 07:38:34