![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Przeglądałem dzisiaj kilka najpopularniejszych frameworków w PHP i zauważyłem, że w większości przypadków model składa się z warstwy dostępu do danych. I tak "Zend Framework" oferuje bramę danych w bibliotece "Zend_Db_Table", zaś "Symfony" używa "Propel" jako ORM.
I gdzie teraz tutaj jest miejsce na logikę biznesową jak np. zadanie obliczenia przychodu? I czy kompletnie zrezygnowano z warstwy usług ("service layer") ? Z tego co wywnioskowałem to w takich przypadkach do kontroli transakcji i koordynowania odpowiedzi służy akcja w kontrolerze akcji. Pomimo, że RoR nie jest PHP-owym frameworkiem, to tam występuje podobna sytuacja. Czy tylko frameworki Javy stosują w pełni prawidła warstwy modelu we wzorcu MVC dzieląc go na warstwę logiki biznesowej, warstwę dostępu do danych i pośredniczącą pomiędzy logiką, a aplikacją warstwę usług? Czy macie może jakieś przykłady jak zastosować logikę biznesową i ew. warstwę usług np. w Zend Framework czy Symfony? Proszę o pomoc i dyskusję. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewien czy dobrze zrozumiałem (za dużo ostatnio mam na głowie), ale nie chodzi o wykorzystanie klasy która jest generowane przez Propel i jest domyślnie pusta. Tam możemy umieszczać wszystkie działania związane z danym danego obiektu.
Ja to wykorzystuję np. kiedy do danych rekordów przypisane są pliki i jak ktoś wywoła usunięcie informacji o ścieżce do pliku lub usunie krotkę, to niewidocznie dla nikogo usuwa też pliki które są już zbędne, czy typowe pobieranie jakiś list gdzie samo tworzenie Criteria do tego i innych rzeczy zajmuje sporo linii. Czyli to jest miejsce na taki pośrednik między samym ORM a akcjami go wykorzystującymi, gdzie mogą być jawne metody lub nadpisane standardowe. Jak się to wykorzystuje to nie trzeba pilnować za każdym razem pewnych rzeczy, tylko zrobi za nas właśnie kod umieszczony w tych klasach. Gdzie wiemy że coś jest robione, wiem co ale nie wiemy gdzie (bo to nas tak na prawdę nie obchodzi). (ciekawe czy dobrze zrozumiałem problem... bo mam obawy że nie) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 19:54 |