我正在建立一个新框架,在所有工作之下,我正在遭遇一个奇怪的问题,引起了我的注意。是否值得创建类似jquery的嵌套语法?
core->component->...->method()
假设所有“组件”都扩展了抽象类,核心就像
class core {
public $components = array();
public load ($component) {
//Assuming component exists
include($component);
$this->component = new component_name($parameters);
//This last line might be as well included in "component"'s constructor
$this->component->core_link = $this;
$components[] = $component;
}
}
这种“架构”是正确的还是在PHP中听起来很奇怪? 阅读/学习容易吗? 你有什么提示给我吗?
由于
答案 0 :(得分:0)
有许多PHP框架/库使用这种流畅的编程风格(也称为方法链接,方法级联等)。所以我认为这种方法没有任何问题。我个人经常使用它。
但是,您的实施不正确。基本上,每个要进行链接的方法调用都必须返回一个实例化对象,以允许对它进行后续方法调用。
例如,假设我想修改load()
方法以允许链接已加载的新component_name
对象。这可能是这样的:
public load ($component) {
//Assuming component exists
include($component);
$this->component = new component_name($parameters); // not sure where $parameters comes from in your code here
$components[] = $component;
return $this->component;
}
使用方法是:
$core_object->load('some_component_name')->some_method_on_component_name();