MVC pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

Backend Developer Scrummaster .NET

Samengevat: Deze werkgever is een ambitieus internetbedrijf met een passie voor digitale communicatie. Ben jij geschikt als Backend Developer? Heb je ervaring met .NET platform? Vaste baan: Backend Developer / SCRUM Master Scrum HBO WO €3.800 - €6.000 Deze werkgever is een innovatief bedrijf met enthousiaste mensen die jarenlang ervaring hebben met het ontwikkelen internet- en intranetoplossingen. Wij houden van korte lijnen en open en eerlijke communicatie. Wij zetten graag onze jarenlange ervaring in om perfect werkende oplossingen te ontwikkelen. Wij ondersteunen dienstverlenende organisaties bij het ontwikkelen en realiseren van een effectief, adaptief communicatieplatform. Je ontwikkelt met ons de meest

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

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 »

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

Bekijk vacature »

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

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 »

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

19/12/2024 06:21:29
 
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.