CodeIgniter和依赖注入/控制器注入

时间:2013-11-04 15:18:45

标签: php codeigniter dependency-injection

我希望能够使用codeigniter进行控制器注入。是否有一个库可以更改核心控制器文件?

我的用法是这样的(伪):

工厂文件//声明将要发生的所有依赖关系

if ( Controller == "Navigation" ) { 
    new Navigation( new PageRepository() ); 
}
else{
    new Navigation(); 
}

导航控制器文件

class Navigation extends MX_Controller {

    private $repository;

    public function __Construct( IPageRepository $repo )
    {
        parent::__Construct();
        $this->repository = $repo;
    }
    public function index()
    {
        $data[ "model" ] = $this->repository->GetAllPages();
        $this->load->view( 'index', $data );
    }
}

任何人都有关于依赖注入的线索吗?我想将其用于单元测试!

1 个答案:

答案 0 :(得分:-1)

我不确定我是否理解您要在此处实现的目标,但如果您想修改/扩展CodeIgniter的核心,则应使用 hooks

这是指向文档的链接,请查看是否有可以使用的挂钩点: http://ellislab.com/codeigniter/user-guide/general/hooks.html