Logo David Burdelak
Słownik · Programowanie i wzorce projektowe

Co to jest Active Record?

Ostatnia aktualizacja:

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

Powiązane pojęcia

Wszystkie hasła z kategorii Programowanie i wzorce projektowe