Многие люди, с которыми я общался, и даже форумы codeigniter указывают на тот факт, что они признают, что на самом деле это не традиционный шаблон Active Record, к которому большинство из нас привыкли, например, в Ruby on Rails.С другой стороны, есть и другие, утверждающие, что существует множество различных способов выражения шаблона Active Record, поскольку он технически создает объекты с полями, соответствующими таблицам базы данных.
Но в действительности ему не хватаетфактическое сохранение и удаление.Но я также думаю, что можно также утверждать, что он очень легко обладает функциональностью активной записи, если вы просто проявите немного творческого подхода к объекту базы данных и передадите его классу, который может представлять действительные активные записи такими, какими мы их знаем.Я думаю, что это закладывает довольно прочную основу для простой реализации чего-то, что выглядит и действует как традиционная активная запись.
aa, и для других важных частей того, что я знаю о полезности активной записи, для модели, которая являетсядолжен представлять объект из определенной таблицы ...
Создать: $db->insert($this);
Читать: $db->get($this->table_name,$this->id);
... или что-то в этом роде.
Сохранить: $db->update($this);
Удалить: $db->delete($this->id);
Конечно, ему не хватает большой автоматичности функций CakePHP и тому подобного, но в то же время он сильно закладывает фундаментпо крайней мере, для базового класса активных записей, и вы, вероятно, захотите использовать фабрику для передачи $ db в объекты, чтобы при вызове «save» не добавлялась куча несущественной информации ...но ... я собираюсь на этом остановиться, потому что думаю, что зашёл немного дальше:).
Я просто хотел бы, чтобы у него были лучшие возможности, когда вы объединяли разные столы.
В заключение, этона самом деле просто кажется, что Codeigniter - это 60% традиционная активная запись, хотя в основном это просто абстракция, добавляемая поверх базовых операторов SQL.