Какова цель "Получить экземпляр" в Codeigniter? Как бы вы объяснили это новичку?
Codeigniter: Получить экземпляр
Ответ 1
Итак, все в CodeIgniter проходит через супермагическую переменную $this. Это работает только для классов, поскольку $this в основном определяет текущий класс.
Ваш контроллер - это класс, поэтому $это есть, что позволяет вам делать $this->load->model('whatever');
В моделях вы также используете класс. Здесь он немного отличается, поскольку $this содержит только полезный материал, поскольку вы расширяетесь от модели. Тем не менее, $this остается в силе.
Когда вы используете помощник или библиотеку, вам нужно найти эквивалент "экземпляр" или $this.
$ci =& get_instance();
... заставляет $ci содержать тот же самый материал/код/полезность как $this, даже если вы не в классе, или нет в классе, который наследует его.
Это объяснение для всех начинающих после 2 пинтов, так что это либо неправильно, либо правильно.; -)
Ответ 2
Это реализация singleton pattern. По сути, есть только один экземпляр рассматриваемого класса, который предназначен для доступности во всем мире. Метод get_instance является статическим и, таким образом, обеспечивает способ доступа к экземпляру из любого места вашего кода.
