HMVC vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

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 »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

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 »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

Als PHP developer bijdragen aan beter onderwijs?

Functie Momenteel zijn ze op zoek naar een PHP developer die mee gaat werken aan de (door)ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js en

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

24/04/2024 02:14:11
 
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.