CI не заменяет поведение класса как таковое, оно просто добавляет функциональность, которая позволяет для простоты получать доступ к пользовательским библиотекам / моделям / представлениям в качестве одноэлементных объектов через основной объект.
Ничто не мешает вам создавать (как у меня в одном из моих проектов) дополнительные файлы с классами для не-одноэлементных сущностей и require
их в модели для дальнейшего использования. Оглядываясь назад, я, вероятно, должен был бы использовать помощников для этого.
Что делает класс загрузчика ($this->load
), помимо прочего, так это то, что он создает отдельный объект указанного класса (модель, библиотека или представление - хотя и не помощники, см. Ниже) и присоединяет его как свойство объекта базовый класс, который обычно доступен через $ this.
Помощники немного разные. Они не прикреплены, а просто «читаются» в глобальном пространстве имен с того места, где они загружены.
Чтобы ответить на ваш вопрос, было бы правильнее использовать класс загрузчика в тех случаях, когда вам не нужно создавать более одного экземпляра класса. Если вам нужны классы «сущностей», ваша лучшая ставка в соответствии с CI - создать их в качестве помощников.