Codeigniter: Получить экземпляр

Какова цель "Получить экземпляр" в Codeigniter? Как бы вы объяснили это новичку?

Ответы

Ответ 1

Итак, все в CodeIgniter проходит через супермагическую переменную $this. Это работает только для классов, поскольку $this в основном определяет текущий класс.

Ваш контроллер - это класс, поэтому $это есть, что позволяет вам делать $this->load->model('whatever');

В моделях вы также используете класс. Здесь он немного отличается, поскольку $this содержит только полезный материал, поскольку вы расширяетесь от модели. Тем не менее, $this остается в силе.

Когда вы используете помощник или библиотеку, вам нужно найти эквивалент "экземпляр" или $this.

$ci =& get_instance();

... заставляет $ci содержать тот же самый материал/код/​​полезность как $this, даже если вы не в классе, или нет в классе, который наследует его.

Это объяснение для всех начинающих после 2 пинтов, так что это либо неправильно, либо правильно.; -)

Ответ 2

Это реализация singleton pattern. По сути, есть только один экземпляр рассматриваемого класса, который предназначен для доступности во всем мире. Метод get_instance является статическим и, таким образом, обеспечивает способ доступа к экземпляру из любого места вашего кода.