Active Record to wzorzec dostępu do danych, w którym jedna klasa odpowiada jednej tabeli, a jej obiekty wierszom tabeli. Obiekt zawiera zarówno dane, jak i metody operacji na bazie, np. zapisz(), usun() czy znajdz().
Jak działa?
Model Artykul ma pola odpowiadające kolumnom. Wywołanie $artykul->tytul = 'Nowy'; $artykul->save(); generuje i wykonuje zapytanie SQL. To wygodne i szybkie w użyciu. Wzorzec stosują m.in. Eloquent w Laravelu, Active Record w Ruby on Rails i Yii.
Zalety i wady
Zaletą jest prostota i niewielka ilość kodu. Wadą ścisłe powiązanie logiki biznesowej z bazą oraz trudniejsze testowanie, bo model zna szczegóły zapisu. W dużych aplikacjach klasy rozrastają się i łamią zasadę pojedynczej odpowiedzialności.
Active Record a Data Mapper
W alternatywnym podejściu Data Mapper obiekty domenowe nie wiedzą o bazie, a zapisem zajmuje się osobny mapper, jak w Doctrine. Daje to czystszy model kosztem większej ilości kodu.
Ma to duże znaczenie dla wydajności serwisów opartych na CMS, w których o szybkości decyduje komunikacja z bazą danych.
Zobacz w praktyce
Wydajna komunikacja z bazą danych w popularnych CMS
Clean Code - jak pisać czytelny i zrozumiały kod
Jak zabezpieczyć aplikację przed SQL Injection Powiązane pojęcia
Wszystkie hasła z kategorii Programowanie i wzorce projektowe