Мне было интересно, можно ли назначить другой объект $ this?
В CodeIgniter я вызываю другой контроллер из основного контроллера.
приложение/контроллеры/module.php
Class Module extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function _remap($class, $args = array()) {
// doing some checks that is there a valid file, class and method
// assigning the $method.
// including MY_Module class. I'am extending every module from this class.
// then:
$EG = new $class();
call_user_func_array(array(&$EG, $method), array_slice($this->uri->rsegments, 3));
}
}
В вызываемом классе:
Class Users extends MY_Module
{
public function __construct() {
parent::__construct();
}
public function index() {
// Want to use this class and method like it is a codeigniter controller.
}
}
МОЙ_Модуль:
Class My_Module {
public function __construct() {
$this =& CI_Controller::get_instance(); // Here is problem.
}
}
Я хочу использовать объявление экземпляра класса для класса My_Module. Так что он не будет инициализировать одни и те же библиотеки и не будет тратить больше ресурсов.
Как я могу это сделать?
Спасибо за советы.
РЕДАКТИРОВАТЬ: я пытался расширить MY_Module из CI_Controller. Но поскольку он уже создан один раз, это вызывает проблемы.
$this =& CI_Controller::get_instance();
амперсанд бесполезен, потому что в PHP 5.x все объекты всегда передаются по ссылке (как и должно быть) - person mkilmanas   schedule 07.06.2011