Codeigniter как методы вызова? - PullRequest
       0

Codeigniter как методы вызова?

0 голосов
/ 08 сентября 2010

В codeigniter мы используем вызов метода, подобный этому

$this->load->view();

Я хочу точно знать, что такое "нагрузка"? Это функция или как? И почему после него нет двух скобок? Я хочу сделать что-то подобное в своем коде, так как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

load, свойство объекта $this, является экземпляром класса CI_Loader. У него есть метод с именем view().

CodeIgniter создает экземпляр объекта Loader довольно тупым способом, но вы можете визуализировать его следующим образом:

class Loader {
  function view($view_name) {
    echo "View '$view_name' loaded!";
  }
}

class FooController{
  public $load;

  function __construct() {
    $this->load = new Loader();
  }
}

$foo = new FooController();
$foo->load->view("bar"); // => "View 'bar' loaded!"
/* ^    ^     ^
   |    |     |
   |    |     +--- view() is a method on the Loader object assigned to $foo's 'load' property
   |    |
   |    +--------- 'load' is a property on $foo, to which we've assigned an object of class Loader
   |
   +-------------- $foo is an instance of class FooController
*/
0 голосов
/ 08 сентября 2010

Вы бы сделали что-то вроде этого:

class Controller {
    public $load = new Loader();
    //...
}

Затем вы можете получить доступ к свойствам и методам $load, например:

$controller = new Controller();
$controller->load->foo();

В CI $load - этопросто свойство класса CI_Controller и экземпляр класса CI_Loader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...