如何设置以下体系结构

时间:2010-01-11 16:19:34

标签: php architecture

如果标题有点模糊,我很抱歉,我不知道如何描述它。

我正在制作自己的小框架。事情进展顺利,我很乐意看到我通常不需要查看的主题,因为“魔术”对我有用。

我的框架是基于PHP的,我希望它从单个实例运行。我的意思是以下几点。

class Controller_Name extends Controller {

  public function __construct() {
    $this->load->library('session');
    $this->load->model('Model_Name');
  }

}

class Model_Name extends Model {

  public function something() {
    if ($this->session->get($something))
      // Do something Amazing
  }

}

如上所述,我希望所有控制器/模型/视图共享已加载的库。

因此,如果在Controller中加载了一个类,我将能够在视图文件中使用它。

有谁知道这是怎么做到的?你可以指点我的文章方向,这个叫做或者某些php函数调用完全或部分完成这项工作。

与往常一样,我们非常感谢任何答案。

2 个答案:

答案 0 :(得分:0)

您的控制器可以实现__get并拦截已加载库的请求。理想情况下,您将库存储在静态字段中,以获得您想要的重用。

此外,为了使加载行为像您想要的那样,我个人创建一个Loader类并在Controller中创建它的实例。然后在__get魔术方法中,我将它从加载器中获取它。

答案 1 :(得分:0)

如果您的目标是确保解决课程中的所有依赖关系,请查看Service ContainersSymfony Dependency Injection Component框架中的Stubbles