2009-08-13 12 views
5

Czy ktoś wie jakieś dobre przykłady dla aplikacji PHP przy użyciu następujących 4 „warstwy”Wzorce PHP - Przykłady usług/modeli/maperów/dao?

ServiceLayer --> Model --> DataMapper --> DAO

Nie jestem pewien, czy to ma sens, ale kiedy używać taki wzór mam wykonać następujące czynności, aby utworzyć nowy rekord w mojej bazy danych:

$servcie = new Service(new Mapper(new Dao)); 
$service->save($data) 

Usługa jest utworzenie nowego obiektu danych i przekazywanie go do mapowania, odwzorowującego jest przekazywania danych dostarczonych Dao ..

w kapelusz jest intencją użycia takich konstrukcji?

Dlaczego nie po prostu:

$model = new Model(); 
$model->save($data) 

model jest zapisywanie do DB.

Odpowiedz

3

Idealnie model nie powinien mieć nic wspólnego z jego przechowywaniem lub zarządzaniem. Powinna to być czysta i przenośna reprezentacja danych (najlepiej, choć często nie tak w praktyce). Kontroler (lub dedykowany kontroler podrzędny) powinien być tym, który obsługuje tę funkcję dla modelu.