MVC pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Pagina: 1 2 3 4 volgende »

Ozzie PHP

Ozzie PHP

20/02/2014 01:19:17
Quote Anchor link
Hallo,

"Vroeger" dan laadde ik op basis van een route een pagina-controller. Zo heb ik het ooit geleerd met Zend Framework (1). Bijv. mijnsite.nl/contact, dan was "contact" de route en werd de indexAction() van de contactController class aangeroepen. Iedere pagina had dus een eigen controller.

Nu wil ik het anders gaan doen. Ik wil niet dat 1 pagina overeenkomt met 1 controller. In plaats daarvan wil ik een pagina waarop ik verschillende modules kan plaatsen die ieder op zich weer een eigen controller hebben. Wat ik me alleen even afvraag is hoe dat proces (in grote lijnen!) er uitziet.

Ik dacht dus zelf om een route (bijv. "contact") te koppelen aan een pagina-configuratiebestand (/page/contact/configuration) en dat ik dan in dat bestand aangeef wat er op die betreffende pagina moet komen te staan. Zoiets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
module: header
module: title
  title: Contactgegevens
module: contact
  show_address: true
  show_map    : false
module: footer

Is het een goed/acceptabel idee om het op deze manier aan te pakken? Het gaat niet om de details, maar met name om de globale opzet. Dus een route die verwijst naar een config-bestand waarin de modules worden ingesteld.
 
PHP hulp

PHP hulp

24/04/2024 02:52:07
 
Ward van der Put
Moderator

Ward van der Put

20/02/2014 06:37:39
Quote Anchor link
>> Ik dacht dus zelf om een route (bijv. "contact") te koppelen aan een pagina-configuratiebestand (/page/contact/configuration) en dat ik dan in dat bestand aangeef wat er op die betreffende pagina moet komen te staan.

Voor elke pagina een apart configuratiebestand? Met daarin content zoals "title: Contactgegevens"? Dat lijkt geen goed idee.

De basisgedachte is wel goed: niet één controller per pagina, maar meerdere voor verschillende onderdelen die in verschillende webpagina's worden hergebruikt. HMVC daarom.
 
D Vivendi

D Vivendi

20/02/2014 08:47:07
Quote Anchor link
Het hoeft helemaal niet zo te zijn dat 1 pagina overeen komt met 1 controller. Je kan toch meerdere Action methods maken in een controller. Kan me voorstellen dan een "Contact" controller maar 1 pagina heeft. Maar een UserController zou er bijvoorbeeld meer kunnen hebben. Overview, Edit etc.

En wat is volgens jou een "module"? Is dat simpelweg een View die je dan inlaadt? Waarbij je dan in je configuratie ook nog aangeeft welke 'stukken' je in die view wel en niet wilt laten zien?

Dat klinkt voor mij echt als View logica. Niet iets wat je zo in een configuratie bestand zou moeten maken.
 
Ozzie PHP

Ozzie PHP

20/02/2014 16:25:29
Quote Anchor link
>> Voor elke pagina een apart configuratiebestand? Met daarin content zoals "title: Contactgegevens"? Dat lijkt geen goed idee.

Een configuratiebestand, of misschien wel gewoon een eigen "page" class per pagina? En nee, je zet er dus niet alleen de titel in, maar ook de modules + de configuratie daarvan die op die pagina moeten komen te staan. Zie het code-voorbeeld in mijn eerste post.

>> De basisgedachte is wel goed: niet één controller per pagina, maar meerdere voor verschillende onderdelen die in verschillende webpagina's worden hergebruikt. HMVC daarom.

En hoe ziet zo'n bestand voor 1 pagina er dan uit? Heb je daar toevallig een voorbeeld van?

>> Het hoeft helemaal niet zo te zijn dat 1 pagina overeen komt met 1 controller. Je kan toch meerdere Action methods maken in een controller. Kan me voorstellen dan een "Contact" controller maar 1 pagina heeft. Maar een UserController zou er bijvoorbeeld meer kunnen hebben. Overview, Edit etc.

Dit is toch precies wat ik zeg?

>> En wat is volgens jou een "module"? Is dat simpelweg een View die je dan inlaadt? Waarbij je dan in je configuratie ook nog aangeeft welke 'stukken' je in die view wel en niet wilt laten zien?

Met een module bedoel ik een "onderdeel" met een eigen controller, model en view. Stel je hebt één pagina met daarop een header, nieuwsberichten en een footer, dan zijn dit 3 modules.

Snap je wat ik bedoel?

Ik wil dus (schematisch) zoiets kunnen doen:

Pagina "huppeldepup":

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
- module header
- module nieuwsberichten
    - aantal: 5
- module footer
Gewijzigd op 20/02/2014 16:26:13 door Ozzie PHP
 
Ward van der Put
Moderator

Ward van der Put

20/02/2014 17:23:08
Quote Anchor link
Ozzie PHP op 20/02/2014 16:25:29:
>> Voor elke pagina een apart configuratiebestand? Met daarin content zoals "title: Contactgegevens"? Dat lijkt geen goed idee.

Een configuratiebestand, of misschien wel gewoon een eigen "page" class per pagina? En nee, je zet er dus niet alleen de titel in, maar ook de modules + de configuratie daarvan die op die pagina moeten komen te staan. Zie het code-voorbeeld in mijn eerste post.
Waarom dan niet een database inzetten? Je gaat nu per webpagina een variabele zoals de paginatitel in een YAML-configuratie zetten...
 
Ozzie PHP

Ozzie PHP

20/02/2014 19:31:46
Quote Anchor link
Ward, het is ook nog maar een idee. De settings van één pagina opslaan in een bestand lijkt me wel handig. Hoe doet dat HMVC dat dan?
 
Ward van der Put
Moderator

Ward van der Put

21/02/2014 07:45:39
Quote Anchor link
Als je 5 of 10 pagina's hebt voor een kleine site, kan het wel. Maar worden het er honderden of duizenden, dan ga je de M van MVC missen. De controller (C) haalt dus de paginatitel op uit het model (M) en steekt die in de view (V).

HMVC is een bruikbaar model voor webpagina's omdat die een duidelijke hiërarchische structuur hebben. Neem bijvoorbeeld een adresvermelding in de footer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<html>
  ...
  <body>
    ...
    <footer>
      ...
      <address>
        ...
      </address>
    </footer>
  </body>
</html>

In een HMVC-opzet kun je dan zeggen dat de footer-module in de hiërarchie boven de address-module staat:

HMVC-module Footer > HMVC-module Address
 
Ozzie PHP

Ozzie PHP

21/02/2014 08:38:48
Quote Anchor link
Als ik het goed begrijp, van wat ik heb gelezen, heb je een soort van parent MVC met daaronder allemaal child mvc'tjes. Alle MVC's staan op zichzelf en kunnen met elkaar "praten" via de controller. Correct?

Die parent MVC, is dat dan een soort van "page" module, waarmee je de titel en metatags van een pagina aangeeft? Moet ik dat op die manier zien? En wat voor actions zou een "page" module kunnen hebben? Alleen een indexAction()? En is het dan de bedoeling dat de page module de GET en POST data doorgeeft aan de child modules?

Ik zit maar een beetje hardop te brainstormen nu hè... alle advies is welkom.
 
Ward van der Put
Moderator

Ward van der Put

21/02/2014 09:00:53
Quote Anchor link
Ja, helemaal correct. Plaatje van MVC naast HMVC uit Scaling Web Applications with HMVC:
Afbeelding
HMVC-modules hoeven niet altijd een hiërarchie te hebben: ze kunnen ook "naast" elkaar staan. Denk bijvoorbeeld aan een top-banner en een bottom-banner. Die zijn gelijkwaardig, maar kunnen toch van elkaar afhankelijk zijn wanneer je bannermanagement een regel afdwingt zoals "in de bottom-banner moet altijd een andere advertentie worden getoond dan in de top-banner". Ze hebben dan geen parent/child-relatie, maar het zijn eerder siblings die beide afhankelijk zijn van dezelfde parent-controller.
 
Ozzie PHP

Ozzie PHP

21/02/2014 09:17:39
Quote Anchor link
Ah oké. In het geval van de banners, hoe werkt zoiets dan concreet? Stel we hebben inderdaad een top-banner en een bottom-banner die verschillend moeten zijn. Ik ga er dan even vanuit dat de overkoepelende parent controller (is daar eigenlijk een naam voor?) aangeeft dat er 2x een banner moet worden getoond. Stel even voor het gemak dat op een pagina alleen die 2 banners staan, hoe ziet de code er dan uit?

Kruig je dan zoiets als dit? Of werkt het anders?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
public function indexAction() {
  $modules       = $this->modules;
  $top_banner    = $modules->get('banner');
  $bottom_banner = $modules->get('banner');
  $top_banner->setAction('show');
  $bottom_banner->setAction('show');
}

?>

En hoe zorg je er dan voor dat ze allebei iets anders tonen?
 
Ward van der Put
Moderator

Ward van der Put

21/02/2014 10:36:06
Quote Anchor link
>> En hoe zorg je er dan voor dat ze allebei iets anders tonen?

Bijvoorbeeld door één parent-controller verantwoordelijk te maken voor de twee child-controllers. Schematisch:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$banners
= new BannerManagementController();
$banners->setNumberOfBanners(2);
$top_banner    = $banners->getBannerById(0);
$bottom_banner = $banners->getBannerById(1);
?>

Abstract gezegd: de twee banners zijn siblings die niet van elkaars bestaan weten. Alleen de controller erboven weet dat. Eén request om twee banners aan de parent-controller wordt uitgesplitst in twee requests om één banner voor de child-controllers.
 
D Vivendi

D Vivendi

21/02/2014 11:16:24
Quote Anchor link
Welke voordelen heeft zo'n structuur dan eigenlijk? Als ik het banner voorbeeld even blijf aanhouden dan zou je in dit geval een tweetal Controllers hebben.

Één controller die aangeroepen wordt door een HTTP request. In die Controller roep je vervolgens weer een andere controller aan voor het ophalen van de banners. Dus je moet twee controllers maken, en wellicht een aantal methods voor het returnen van één of meerdere banners zoals je nu doet met "getNumberOfBanners()".

En wat voor data krijg je in dit geval dan terug als je "getBannerById()" aanroept? Komt deze data uit de database? Krijg je HTML terug omdat hij de content van een View terug geeft?

In het eerste geval klopt het niet echt lijkt mij. Dat zou dan meer iets zijn wat thuis hoort in een Model layer.

In het tweede geval is het ook niet goed. Want je Views moeten bepalen wat voor (Sub)Views ze willen tonen. Dat is niet iets wat je in je Controller of waar anders dan ook wilt regelen. Eigenlijk helemaal niet met service code.
 
Wouter J

Wouter J

21/02/2014 11:43:34
Quote Anchor link
En dan komen we weer terug op mijn, volledig uitgelachen, subrequests die je vanuit je template moet aanroepen...
 
Ward van der Put
Moderator

Ward van der Put

21/02/2014 12:01:17
Quote Anchor link
>> En wat voor data krijg je in dit geval dan terug als je "getBannerById()" aanroept? Komt deze data uit de database? Krijg je HTML terug omdat hij de content van een View terug geeft?

In class BannerManagementController() zou de methode getBannerById() uiteindelijk bijvoorbeeld een return new BannerController() kunnen opleveren. Heb je geen bannermanagement nodig, dan kan een new BannerController() ook zelfstandig worden gebruikt.

Het gaat hier even om de HMVC-gedachte: zodra je twee afhankelijke siblings hebt, hoort er een parent boven.

Het model splits je inderdaad ook MVC uit. Voor één banner heb je data van één banner nodig. Hogerop in de HMVC-hiërarchie heb je echter nog méér data en andere data, dus een ander/ruimer model. Daar formaliseer je beslissingsregels zoals "nooit meer dan drie banners per pagina" of "twee banners mogen nooit identiek zijn" of "adverteerder X moet 4 weken boven staan". Dat vereist een andere controller dan de controller die je gebruikt voor één banner.

Een ander, misschien beter voorbeeld is een blogpost met daaronder reacties. Er bestaat dan een één op veel-relatie tussen de blogpost en de reacties. Dat zijn alvast twee controllers, die samenhangen via de id van de blogpost. Boven die twee controllers heb je daarvoor opnieuw een HMVC-dispatcher nodig die de request om die specifieke id doorgeeft aan de controllers.

En ook hierbij speelt het model een rol, want je wilt bijvoorbeeld in het CMS kunnen instellen dat op bepaalde blogposts niet kan worden gereageerd. De parent-controller bepaalt dus via het model of de child-controller voor de reacties mag/moet worden ingezet.

De views van de HMVC-modules zijn dan ook logisch gescheiden, bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- blogpost.tpl -->
<article id="blogpost">
  ...
</article>

<!-- reacties.tpl -->
<div id="reacties">
  ...
  <ul>
    <!-- reactie.tpl -->
    <li class="reactie">...</li>
    <!-- reactie.tpl -->
    <li class="reactie">...</li>
    ...
  </ul>
  ...
</div>

Inclusief subviews dus. De lijst met reacties is één view waarbinnen elke reactie aan andere view is.
Gewijzigd op 21/02/2014 12:03:16 door Ward van der Put
 
Wouter J

Wouter J

21/02/2014 12:11:29
Quote Anchor link
Ward, maar het probleem is dat je dat nu vanuit de PHP code gaat bepalen. De PHP code heeft helemaal niks te zeggen over wat er op het scherm komt, alleen de view weet wat hij wilt gaan tonen. Je moet dus de subcontrollers aanroepen vanuit de template en niet vanuit de controller.
 
D Vivendi

D Vivendi

21/02/2014 12:12:52
Quote Anchor link
Ok, ik snap die gedachte gang al wat beter. Maar je zegt bij een blog post heb je 2 controllers. Één voor de Blog(s) en één voor de reacties.

Heb je daar dan ook weer 2 verschillende Model layers voor? Moet ik die structuur dan ook echt zien als dit:


(Dit is maar een voorbeeld structuur)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\Modules
  \Blog
    \Controllers
      BlogController.php
    \Models
      BlogModel.php
     \View
       blogpost.tpl
   \BlogReacties
      \Controllers
        BLogReactieController
      \Models
        BlogReactieModel.php
      \Views
        reacties.tpl


Zou dat er zo uit kunnen zien? Iedere "module" in een eigen mapje, met eigen controller, model en views?
 
Wouter J

Wouter J

21/02/2014 12:15:54
Quote Anchor link
Vivendi, zou ik wel doen ja :) Al zou ik de BlogReacties los zetten van de blog en het dus gewoon algemeen Reacties noemen.
Gewijzigd op 21/02/2014 12:16:22 door Wouter J
 
Ozzie PHP

Ozzie PHP

21/02/2014 13:08:33
Quote Anchor link
@Vivendi: ja, dat is juist de hele gedachtengang erachter.

@Wouter:

>> Ward, maar het probleem is dat je dat nu vanuit de PHP code gaat bepalen. De PHP code heeft helemaal niks te zeggen over wat er op het scherm komt, alleen de view weet wat hij wilt gaan tonen.

Nee, dat denk ik niet. Volgens mij is de parent controller leidend. De parent controller zegt: ik wil dat module x y en z op deze pagina worden getoond. Deze modules hebben op hun beurt een eigen view.

Wat, hoe ik het begrijp, die parent controller in pseudo code dus doet is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
include de view van module x
include de view van toon module y
include de view van toon module z
render de complete view
 
Wouter J

Wouter J

21/02/2014 13:31:39
Quote Anchor link
>> De parent controller zegt: ik wil dat module x y en z op deze pagina worden getoond.

Daar is het probleem. Een controller mag nooit zeggen, ik wil dat dit wordt getoond. Een controller mag alleen zeggen, ik wil dat deze view wordt getoond. Die view bepaald vervolgens wat er precies wordt getoond.
 
D Vivendi

D Vivendi

21/02/2014 13:35:24
Quote Anchor link
Dit hele idee klopt dan volgens mij niet.

Naar mijn idee horen reacties bij een blog. Om dan 2 models te maken waar je je data aan kan opvragen voor iets wat bij elkaar hoort is raar. Normaal gesproken zou je iets hebben van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$blogModel = new BlogModel();
$blog = $blogModel->getBlogById(100);

// Returned een array waarin de reacties zitten.
// Elk item in die array kan een "Reactie" object zijn of ook weer een array
print_r($blog->Reacties());


Dit is simpel en duidelijk.

Het is niet logisch om verschillende Models te gaan aanspreken om data te krijgen wat eigenlijk bij elkaar hoort.

Als je al views gaat includen vanuit je controller zoals Ozzie nu zegt, dan zit je sowieso verkeerd te denken. Alle View logica regel je vanuit een view en nergens anders. Ook wanneer je andere views wilt includen.
 
Ozzie PHP

Ozzie PHP

21/02/2014 13:37:59
Quote Anchor link
Wouter, wat is precies het verschil tussen wat jij zegt en wat ik zeg? Of bedoel je hetzelfde te zeggen als dat ik zeg?

Wat ik bedoel, is dat de parent controller aangeeft dat op pagina foo de view van module x moet worden geplaatst. Die view van module x komt... uit module x. Hoe die view eruit ziet daar heeft de parent controller niks over te zeggen. Bedoelen we hetzelfde?

Toevoeging op 21/02/2014 13:40:30:

>> Als je al views gaat includen vanuit je controller zoals Ozzie nu zegt, dan zit je sowieso verkeerd te denken. Alle View logica regel je vanuit een view en nergens anders. Ook wanneer je andere views wilt includen.

Je moet zelf even anders leren denken. Dit is een andere manier dan jij gewend bent. Daar moet je je even voor openstellen in plaats van meteen te gaan roepen dat het niet klopt.

Je werkt met losse views. Iedere module heeft een eigen view. Als je dat principe begrijpt, dan zul je ook begrijpen dat het niet de bedoeling is om vanuit één zo'n view andere views te gaan aanroepen.
 

Pagina: 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.