Является ли класс Active Record CodeIgniter просто уровнем абстракции базы данных? - PullRequest
1 голос
/ 13 апреля 2011

Кажется, что активный класс записей CodeIgniter - это просто DAL.Как он квалифицируется как активный шаблон записи?

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Многие люди, с которыми я общался, и даже форумы 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.

0 голосов
/ 13 апреля 2011

Шаблон ActiveRecord является реализацией уровня доступа к данным, как и Data Mapper. Уровень доступа к данным может быть записан разными способами.

Шаблон сопоставления данных

Шаблон активной записи

Уровень доступа к данным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...