PHP Jquery类似的嵌套可读性

时间:2013-12-05 16:37:39

标签: php frameworks readability

我正在建立一个新框架,在所有工作之下,我正在遭遇一个奇怪的问题,引起了我的注意。是否值得创建类似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中听起来很奇怪? 阅读/学习容易吗? 你有什么提示给我吗?

由于

1 个答案:

答案 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();