【问题标题】:CodeIgniter and dependancy injection / Controller injectionCodeIgniter 和依赖注入/控制器注入
【发布时间】:2013-11-04 15:18:44
【问题描述】:

我希望能够使用 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 );
    }
}

任何人都以其他方式了解依赖注入?我想实现它以进行单元测试!

【问题讨论】:

    标签: php codeigniter dependency-injection


    【解决方案1】:

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

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

    【讨论】: