MVC pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

C# .NET Software Ontwikkelaar

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 Arnhem 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. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Medior PHP Developer

Functie omschrijving Ben jij een getalenteerde PHP Developer en aan de slag in een gemotiveerd team? Lees dan snel verder! Voor onze opdrachtgever in de omgeving van Valkenswaard zijn we op zoek naar een ervaren PHP developer. Jij gaat hier zorg dragen voor het optimaliseren en up-to-date houden van de bestaande applicaties. Je werkt verder aan de applicaties die jij verder ontwikkelt. Dit doe je voornamelijk met PHP en MySQL. Verder ga je je bezig houden met: Het uitbouwen van het E-commerce software platform. Deelnemen aan overleggen met het team. Het ondersteunen van jouw team developers (3 man) en helpen

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

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

18/11/2024 10:41:08
 
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.