PFZ.nl - PHP Community: Hoe het beste een View toe te passen. - Applicatieontwerp en -theorie - Forum - PFZ.nl - PHP Community

Je kunt niet antwoorden op dit topic
#1 22-01-2012 21:31
Ik vind het altijd heerlijk om zonder enige vorm van druk te mogen werken aan een leuk project.
Een redelijk tijdje geleden ben ik begonnen om alle kennis die ik heb vergaard voor wat betreft OOP te bundelen en een start te maken aan een zogenaamd "test framework". Helaas heb ik niet veel tijd over en zodoende ben ik nu een goed half jaar verder, waarin ik veel geleerd heb, maar nog niet echt heel erg ver ben.

Gelukkig heb ik de laatste tijd wat meer tijd en begint het eindelijk op te schieten.
Nu ik zover ben dat ik toe kom aan het View gedeelte van mijn systeem kom ik een beetje in de knoop met mijzelf en mijn gedachte over wat een View is.

Het basis principe van een View is mij eigenlijk wel duidelijk; Logica en presentatie scheiden.
Omdat ik mij hieraan wil houden maak ik gebruik van Controllers, welke bepaalde dingen aan mijn Domain Objecten / Models vragen. Vervolgens zorgt de Controller ervoor de opgevraagde zooi beschikbaar is in de View.

Omdat ik geleerd heb om dubbele code te voorkomen is het wat onzinnig om in elke View de complete Layout van je pagina te gooien. Om deze reden ben ik van mijn View object een Composite View object gaan maken.
Echter vind ik het nogal lelijk / onlogisch om in de Controller een hele config toe tepassen van allerlei objecten zoals onderstaand:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Application\Controllers;
class Index extends \Framework\Controller {
    
    public function get () {
        
        # Set up the views
        $view = new View ('layout', 'html', 'template/default/');
        $view->add ('content', new View ('index', 'html', 'template/default/views/'));
        $view->add ('menu', new View ('menu', 'html', 'template/default/'));
        
        # Get all users 
        $repository = new UserRepository ();
        $users = $repository->find (array ());
        
        # Return the response.
        return new Response ($view->render (array ('users' => $users)), $view->format (), 200);
    }
}


Of is het de bedoeling dat ik per Controller ook een aparte View class maak?
Kan iemand hier zijn licht op werpen en mij uit deze wirwar van rare eigen gedachtes helpen?

Met vriendelijke groet,
Niels

#2 23-01-2012 08:20
Zend Framework (en vele anderen) werkt met een Lay-out module die de lay-out beheerd, de uiteindelijke view word daar aan toe gekend. http://framework.zen...quickstart.html

Symfony2 werkt op basis van Inheritance, boven in je View file geef je aan dat je een ander bestand wil overnemen en overschrijft dan in je eigen View de blokken die je anders wilt. Dit kan heel ver gaan.
http://symfony.com/d...nce-and-layouts


Welke manier het beste is laat ik in het midden, dit is een kwestie van smaak en complexiteit van je applicatie.
"fouten verifieer je niet met een "; DROP DATABASE" commando. " Arnoud Engelfriet (Security.nl)


Inloggen wachtwoord vergeten? Aanmelden