Библиотеки / модели / лёгкие загрузки CodeIgniter

При написании приложений CodeIgniter мои действия с контроллером, как правило, начинаются с нескольких строк, как показано ниже:

$this->load->model('abc_model'); $this->load->library('ijk'); 

И затем (только для полноты) они используются следующим образом:

  $this->abc_model->fetch_123(); $this->ijk->do_something(); 

Было ли что-то слишком неправильным в расширении MY_Controller чтобы было возможно следующее:

  $this->model('zbc_model')->fetch_stuff(); $this->library('ijk')->do_something(); 

Плюсы:

  1. Классы не загружаются, пока они не используются
  2. Не нужно было бы автоматически загружать любые классы, используя config/autoload.php
  3. Чуть более чистый код (возможно)

Минусы:

  1. Дополнительный вызов метода для каждого доступа (обычно просто возвращающий уже загруженный экземпляр)
  2. Немного грязный код (возможно)

Related of "Библиотеки / модели / лёгкие загрузки CodeIgniter"

Используйте технику Phil Sturgeon, добавьте это в свое приложение / config / config.php

 /* | ------------------------------------------------------------------- | Native Auto-load | ------------------------------------------------------------------- | | Nothing to do with cnfig/autoload.php, this allows PHP autoload to work | for base controllers and some third-party libraries. | */ function __autoload($class) { if(strpos($class, 'CI_') !== 0) { @include_once( APPPATH . 'core/'. $class . EXT ); } }