我使用一个小型框架,它的主要对象可通过它的子级(控制器、模型、视图)使用
mainobject::instance()
框架的 Wiki 建议添加所需的控制器方法
$mainobject = mainobject::instance()
因此,它通过单变量可用于模型。我怀疑这是否真的很方便,在每个模型的方法中定义该变量以获取例如全局配置变量。
class MyAnotherModel extends FrameworksModel
{
…
my_method() {
global $mainobject;
…
if ($mainobject->config['something_here'];
$mainobject->controller->othermodel->othermodelsarray['somestring'];
}
}
无论如何,这是一个巨大的字符串,我宁愿让它更大一点,调用一个实例,然后每次写两个字符串。我的意思是,写
mainobject::instance->config['goods']
mainobject::instance->controller->othermodel->othermodelsmethodgiveme('power');
但我不知道是否可以实现,因为控制器类不提供调用实例作为变量。我想可能通过 getter 方法……如果有这样的方法。那么不重写原来的 mainobject 类我能做什么呢?
inb4 长字符串不方便输入 - 没有问题,因为我可以在 emacs 中使用缩写词并缩短输入短语。