zakius napisał
Ale pętla to już logika, kontrola, nie widok. Po prostu to nie będzie działać zgodnie z założeniami, jest to niewykonalne
zależy jaki etap też, ostateczne stylowanie to zabawa dla widoku, ale upewnić się, że nic dziwnego nie ma w tym stringu wolałbym wcześniej
Kontroler ma za zadanie kontrolować workflow ( w ujęciu MVC , that is ) . Dodajesz mu dodatkową odpowiedzialność poprzez wstawianie do niego kodu odpowiedzialnego za widok. ;p
@edit
I mylisz pojęcia. View to widok, który zawiera w sobie LOGIKĘ wyświetlania widoku. To o czym mówisz to szablon.
Ja generalnie w swoich projektach stosuje architekturę cebulową + DDD i sprawdza się swietnie. Przykładowy request dla pobrania listy blogów:
( W nawiasie piszę co konkretnie klasa robi ):
index.php ->
DI::createRouter() ( tworzę router z kontenera DI ) ->
Router::createRouteFor(IRequest $request) ( produkuję instancję interfejsu IRoute ) ->
DI::createController(IRoute $route) ( zwracam kontroler do obsługi żądania, wraz z zależnościami IListApplicationService $service który jest serwisem aplikacji oraz IRequest $request, czyli instancja requestu ) ->
ShowListController::run() ( mapuje request, czyli parametry GET/POST/COOKIE i tak dalej na konkretne zapytanie do API aplikacji ) ->
GetBlogListApplicationService::getList($offset,$li mit) ( API dla zwracania listy blogów ) ->
BlogRepository::getRange($offset,$limit) ( Tworzy ogólny request do repozytorium danych ) ->
DataRepository::find($constraints) ( Na podstawie zadanych warunków z API repozytorium ustala czy dane są może w keszu aplikacji bądź w 3rd party keszu [ memcache np ] , jeśli nie - tworzy konkretne zapytanie, a z wyników tworzy obiekty domenowe ) ->
DatabaseManager::runQuery($query) ( Ustala odpowiednią instancję do której zapytanie powinno być skierowane, przydatne, kiedy masz wiele milionów rekordów i na podstawie metadanych zapytania ( typ zapytania, jakiś konkretny warunek potrzebujesz wywołać je z góry na określonym serwerze/grupie serwerów ) ->
IDatabaseAccessLayer::query($query) ( Zapytanie do bazy i zwrot wyników ) ->
ShowListController::run() ( Wracamy spowrotem do kontrolera z zdobytymi danymi z service API , to ogółem jest to samo wywołanie co wyżej tylko napisałem je aby było wiadomo, że wróciliśmy do tego punktu :D ) ->
BlogListView::render($data) ( renderuje dane )
index.php ( z kontrolera mamy wyrenderowane dane o blogach ) ->
robimy co chcemy ( dekorujemy layoutem statycznym, dekorujemy innymi wywołaniami kontrolerów, w/e )
@edit2
i żeby nei było, to są calle dynamiczne a nie statyczne, żeby jakis geniusz nie wyleciał mi zaraz xDD
Zakładki