HMVC vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET Developer

Functieomschrijving We are looking for a dutch native speaker In deze uitdagende functie ga je werken als onderdeel van het development team, in de functie van C#.NET Developer, Je gaat maatwerk software bouwen voor diverse klanten. Ook optimaliseer je bestaande software en bouw je API koppelingen. Je bent vooral met back-end development bezig. Je krijgt veel vrijheid in deze functie en je krijgt de kans om mee te denken in bedrijfsprocessen. Deels thuiswerken is geen enkel probleem! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van

Bekijk vacature »

.net developer

Hoi! Wij zijn auto.nl en wij verkopen auto's online. je bestelt bij ons een auto net zo makkelijk als een spijkerbroek. En bevalt ie niet? Dan stuur je 'm gewoon weer terug. En dat we dat goed doen bewijst onze hoge klanttevredenheid van een 9,3. Nu maken we de volgende stap bij auto.nl. We starten met fysieke winkels. Online zoeken, offline bekijken. Maar nog altijd, geen gedoe! Gewoon eerlijk, transparant en zonder zorgen een auto kopen.. Maar om dat waar te blijven maken en nóg beter te worden, zoeken we uitbreiding van ons development team. Wat ga je precies doen?

Bekijk vacature »

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

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 »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

Medior Front-end 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 websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-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 uitwerken van designs tot functionele layouts Je

Bekijk vacature »

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

Bekijk vacature »

Low-code developer

Functie omschrijving Heb jij altijd al een training willen volgen in het buitenland? Voor een leuke opdrachtgever in omgeving Alphen ad Rijn zijn wij op zoek naar kandidaten die aan de slag willen als Low Code Developer! Beschik jij over HBO/WO nivo, bij voorkeur Informatica, maar een ander technische opleiding zoals bijv. wiskunde, natuurkunde is ook goed. Heb jij aantoonbare affiniteit met IT en ben jij gedreven, enthousiast, communicatief vaardig en klantgericht? Lees dan snel verder! Je wordt getraind tot een volwaardig Low Code Developer, het traject ziet er als volgt uit: Start 1e week januari, opleiding van 3 weken

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

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 »
Wouter Van Marrum

Wouter Van Marrum

02/10/2014 17:25:36
Quote Anchor link
Hallo iedereen,

Ik vroeg met af of je in een HMVC omgeving een standaart hebt hoe je controllers aanroept.
Normaal gezien laadt je maar 1 controller alleen in hmvc kun je meerdere controllers laden, Maar wordt deze in de (bijvoorbeeld ) index controller geladen of in de view of model ?

Kwam er zelf niet helemaal uit zelfs met zoeken want daar lees ik meer over modules. ( dus bijv, twitter module, facebook, blog, rss ect. )
Gr wouter.
 
PHP hulp

PHP hulp

21/11/2024 18:51:23
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/10/2014 18:14:41
Quote Anchor link
De eerste controller wordt door de router aangeroepen. De overige via de view.

Bijv. je geeft een route op voor index.php/contact (of index.php?page=contact):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
main_contact:
    pattern:  /contact
    defaults: { _controller: MainBundle:Contact:index }


De controller:
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
<?php

class ContactController extends BaseController
{
    public function indexAction()
    {

        $data = array(
            'somedata' => 'somedata'
        );
    );


        return $this->render('MainBundle:Contact:index.html.twig', $data);
}

?>


De View:
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
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Contact</title>
    </head>
    
    <body>
        <h1>Contact</h1>
        
        <!-- CONTACT INFO HERE -->

        <div class="sidebar-frame">
            {{ render(controller('MainBundle:Sidebar:index')) }}
        </div>
    </body>
</html>


Zoals je in de view hierboven kunt lezen wordt er weer een nieuwe controller aangeroepen om de sidebar weer te geven.

Voorbeeldje komt van Symfony maar dat is geen HMVC framework. Het principe is echter gelijk, het enigste verschil is dat Symfony geen Models kent. In plaats van een Model aan te roepen vanuit de controller wordt de data gewoon in de controller zelf verzameld. De exacte notatie van bijvoorbeeld de routes zijn per framework wel verschillend.
Gewijzigd op 02/10/2014 19:52:04 door Frank Nietbelangrijk
 
Wouter Van Marrum

Wouter Van Marrum

02/10/2014 20:40:24
Quote Anchor link
Hallo Frank,

Bedankt voor je antwoord.
In jouw voorbeeld gebruik je symfony en die gebruikt weer twig.
Nu gebruik ik alleen twig en heb ik geen toegang tot de render functie die symfony wel heeft.

Dit zou dus betekenen dat ik een twig extension moeten maken die de render functie nabootst.
Of in ieder geval een extension maken die een "controller/module" kan aanroepen en gebruik kan maken van alle functies die beschikbaar zijn.

Heb jij misschien een idee hoe ik dit het beste kan doen.
Met betrekking tot het aanroepen van de functie in van de "controller/module" ?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/10/2014 21:00:33
Quote Anchor link
Helaas Wouter,

In Symfony is dit natuurlijk standaard aanwezig. Google is je vriend :-)

Feitelijk hoef je alleen te weten hoe je een custom functie kan toevoegen in Twig.

http://twig.sensiolabs.org/doc/advanced.html#functions
 
Wouter Van Marrum

Wouter Van Marrum

02/10/2014 21:21:23
Quote Anchor link
Klopt frank,
Had dat topic al doorgelezen en heb al wel een idee hoe ik het wil implementeren.
Zal denk ik nog wel problemen tegen komen maar ik zal er eens een begin aan maken morgen.
 
Wouter J

Wouter J

02/10/2014 21:34:12
Quote Anchor link
Je kan ook even kijken hoe Symfony het heeft gedaan, maar dat is waarschijnlijk erg implementatie specifiek: https://github.com/symfony/TwigBridge/blob/master/Extension/HttpKernelExtension.php

(Btw, als Symfony doet wat jij wilt bereiken, waarom zou je dan nog zelf gaan knutselen?)
 
Wouter Van Marrum

Wouter Van Marrum

03/10/2014 00:30:57
Quote Anchor link
Bedankt wouter!
Had al gekeken hoe symfony dat deed maar keek op de verkeerde plek.
Zal hier morgen/vanmiddag na kijken.
Heb nu nachtdienst dus kan niet veel doen jammer genoeg
 
Ozzie PHP

Ozzie PHP

03/10/2014 01:10:32
Quote Anchor link
@Frank:

Als je die extra controllers in een view onderbrengt die bij de contactpagina hoort, dan krijg je dus telkens dezelfde pagina als je de contactpagina aanroept. Ik dacht eigenlijk dat het idee was dat zo'n pagina dynamisch (aan de hand van configuratie) wordt opgebouwd. Bijv. website A en B hebben allebei een contactpagina, maar op website B wordt een routebeschrijving getoond en op website A niet. Als je het in de view implementeert staat alles vast lijkt mij.
Gewijzigd op 03/10/2014 01:10:56 door Ozzie PHP
 
Wouter Van Marrum

Wouter Van Marrum

03/10/2014 01:34:54
Quote Anchor link
@ozzie, je gebruikt geen hele contact pagina als module. (als het goed Is)
Het zijn voornamelijk kleine elementen die je opnieuw kunt gebruiken op meerdere pagina's als dit nodig is.
Denk hier bijvoorbeeld aan een navigatie module die je in een master layout zet.
Of een fb like module die je in een pagina of blog view verwerkt.

Dit zijn maar voorbeelden natuurlijk.
En wat mij ook een voordeel lijkt is dat je een default style zou kunnen toepassen op de modules en eventueel kunt aanpassen.
Gewijzigd op 03/10/2014 04:33:32 door Wouter Van Marrum
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/10/2014 08:54:54
Quote Anchor link
Ozzie PHP op 03/10/2014 01:10:32:
@Frank:

Als je die extra controllers in een view onderbrengt die bij de contactpagina hoort, dan krijg je dus telkens dezelfde pagina als je de contactpagina aanroept. Ik dacht eigenlijk dat het idee was dat zo'n pagina dynamisch (aan de hand van configuratie) wordt opgebouwd. Bijv. website A en B hebben allebei een contactpagina, maar op website B wordt een routebeschrijving getoond en op website A niet. Als je het in de view implementeert staat alles vast lijkt mij.


Volgens mij is het idee om dubbele code te voorkomen.
Als we op alle pagina's dezelfde sidebar willen zien en we hebben vijf verschillende pagina's dan gaan we natuurlijk niet vijf keer dezelfde code herhalen. (logisch toch) Dat is naar mijn idee dé reden. Verder kan het juist zeer zeker wél dynamisch:

1. je hebt alle vrijheid in je controller(s).
2. in twig kun je heel simpel een if() - else() - endif gebruiken.
3. je kunt een foreach() e.d? in twig gebruiken
4. je zou zelfs nog een array met config waardes kunnen meegeven. (not done)


Dus ook het aanroepen van die controller kan in een if()
 
Ward van der Put
Moderator

Ward van der Put

03/10/2014 09:17:12
Quote Anchor link
Correct: Don't repeat yourself zou Artikel 1 in de Grondwet van OOP-land kunnen zijn.

Zodra je op het punt staat twee keer hetzelfde te gaan doen, moet je gaan refactoren. Bijvoorbeeld naar een service.

In dat opzicht is de naam HMVC misleidend, want het is geen MVC. Refactoren betekent namelijk niet automatisch dat je die dubbelingen in code dan in twee controllers gaat uitsplitsen.

De hiërarchie bij HMVC ontstaat niet doordat je MVC-modules binnen MVC-modules gebruikt, zoals een social media buttons-module binnen een footer-module binnen een webpagina-module. Dán krijg je inderdaad iets dat je niet wilt: een controller die vanuit een bovenliggende view in de hiërarchie wordt aangesproken. Je regelt dat op een hoger niveau, in de configuratie en in services van een kernel.
 
Ozzie PHP

Ozzie PHP

03/10/2014 10:37:55
Quote Anchor link
Ik snap niet of jullie nu hetzelfde bedoelen als wat ik bedoel, maar ik bedoel dit...

Frank zegt we hebben URL www.mijnsite.nl/contact en die roept de ContactController aan. Die ContactController roept vervolgens een view aan, en in die view worden weer andere (bijv. 5 stuks) controllers aangeroepen. Oké, prima... want dan gaan we niet wederom 5x die view opnieuw maken, maar we roepen gewoon die controller aan, en die zorgt voor de view. Correct?

Maar wat nu als 1 van die 5 controllers een MapController is die een plattegrond toont. Stel nu ik heb 2 verschillende websites, waarbij ik alleen bij de eerste een plattegrond wil tonen. Bovendien wil ik bij de 2e website een andere (dan die 5) controller erbij plaatsen. Hoe los je dat dan op?
 
Wouter J

Wouter J

03/10/2014 11:41:50
Quote Anchor link
>> Hoe los je dat dan op?

Website 1 en Website 2 hebben niet dezelfde backend. Misschien hebben ze wel overeenkomstige modules, maar daarvan wordt bijv. de view in de applicatie specifieke bestanden overschreven.

Overigens zijn we nu wel dit topic aan het kapen, niet?
 
Ozzie PHP

Ozzie PHP

03/10/2014 12:04:23
Quote Anchor link
>> Website 1 en Website 2 hebben niet dezelfde backend.

Dat weet je niet... ze kunnen toch op hetzelfde platform draaien en gebruik maken van dezelfde library?

>> ... maar daarvan wordt bijv. de view in de applicatie specifieke bestanden overschreven.

Dan ga je dus per (main)controller controleren of er een applicatie-specifieke view aanwezig is?

>> Overigens zijn we nu wel dit topic aan het kapen, niet?

Vind ik niet... ik probeer duidelijk te krijgen wat het doel is van de HMVC opzet. Klopt de opzet zoals deze door Frank wordt beschreven, of is misschien een iets andere aanpak wel wenselijk/handiger...?
 
Wouter J

Wouter J

03/10/2014 12:22:58
Quote Anchor link
>> Dat weet je niet... ze kunnen toch op hetzelfde platform draaien en gebruik maken van dezelfde library?

Beide websites hebben andere eisen, zoals je al beschreef. Dus kunnen ze niet beide op dezelfde applicatie runnen. Wat je in dit zorgt gevallen vaak hebt is een "standaard" die alle basis features bevat. Daar bovenop komt dan per website de maakwerk code. In dit geval zou een plattegrond onderdeel zijn van deze maatwerk code.

>> Dan ga je dus per (main)controller controleren of er een applicatie-specifieke view aanwezig is?

Nee, dit zit als het goed is al in je framework ingebouwd. In Symfony kan je bijv. een StandardAppBundle hebben die een template StandardAppBundle:Contact:index.html.twig heeft. In het geval van Website 1 moet deze worden uitgebreid met een plattegrond, dus overschrijven we die in de application directory door een bestand /app/Resources/views/StandardAppBndle/Contact/index.html.twig te maken. Deze voegt dan de plattegrond toe.
 
Wouter Van Marrum

Wouter Van Marrum

03/10/2014 15:29:57
Quote Anchor link
Bedankt voor de antwoorden !
Ik weet nu voldoende hoe ik het wil gebruiken.

Kom hier misschien nog eens later op terug,
 



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.