OOP icm MVC, hoe doen jullie het?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

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 »

Front-end developer Supply Chain Angular, ReactJS,

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Modern, innovatief en Informeel bedrijf waar veel mogelijk is Werken met diverse robot merken Meehelpen met inbedrijfstellingen bij de klant De organisatie Hier ga je aan de slag Dit groeiende bedrijf van totaaloplossingen in de automatisering van productieprocessen, is hoofdzakelijk actief in de Benelux. Vanuit het kantoor in regio Amersfoort worden veel oplossingen geboden in de vorm van robotica. Geen project is hetzelfde wat garant staat voor bijzonder veel afwisseling. De bedrijfsgrootte is ongeveer 80 man. Van gerobotiseerde machinebeladingen tot aan assemblage automatiseringen wordt vanuit krachtige engineering maatwerk equipment geleverd.

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

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 »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

IoT Developer

Ben jij innovatief, heb jij passie voor energie en ben je data gedreven? Bouw dan mee aan IoT binnen Bredenoord. Samen met een gedreven team werk jij aan mooie technische en innovatieve oplossingen. Wat houdt de functie van IoT Developer in? Binnen Bredenoord zijn wij momenteel volop in ontwikkeling met ons IoT platform. Als uitbreiding van ons team zijn wij op zoek naar een IoT Developer. Je zal in projectverband meehelpen met het implementeren van IoT vraagstukken binnen Bredenoord. Als IoT Developer op onze R&D-afdeling word je verantwoordelijk voor het verder inrichten en beheren van ons nieuwe IoT platform. Dat

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »
Ivar

ivar

16/01/2009 18:08:00
Quote Anchor link
hallo,

ik wil graag een eigen php framework schrijven, vooral om OOP en MVC te leren en een beetje voor de lol.

nu wilde ik jullie vragen hoe jullie dit aanpakken.

ik wil in het speciaal weten waar jullie allemaal een class voor hebben, en hoe jullie map structuur eruit ziet. hoe handel je bijvoorbeeld een ajax request af? gebruik je één index bestand wat alle functies uitvoert, of gebruik je voor ieder deel van de site een andere (nieuw, gastenboek, admin).

ik hoe dus geen hele lappen voorbeeld code, maar vooral een beetje extra uitleg over het hoe en wat van het schrijven van een framework. en informatie over hoe jullie het aanpakken.

Ivar

PS links naar must-read site's zijn ook welkom (eventueel ook boeken, maar ik ben meer een voorstander van het {gratis->ik ben Hollander :P } internet)
 
PHP hulp

PHP hulp

03/01/2025 11:17:21
 
PHP Newbie

PHP Newbie

16/01/2009 18:13:00
Quote Anchor link
Kijk even naar het Zend framework.
 
Bo az

Bo az

16/01/2009 19:43:00
Quote Anchor link
Het design pattern Front Controller is wat mij betreft een 'must read'. Op phpfreakz staat er een toegankelijk artikel over: http://wiki.phpfreakz.nl/FrontController
 
Ivar

ivar

16/01/2009 21:33:00
Quote Anchor link
alvast bedankt voor deze antwoorden.

@PHP Newbie: ik zal even naar zend kijken, ik neem aan dat je het als voorbeeld bedoelde om te zien hoe zij het aanpakken?

@Boaz: dat is een erg handige pagina, daar kan ik wat mee! (ik zal ook even verder kijken in die wiki volgens mij staat er nog wel meer interessants)
 
Arian Stolwijk

Arian Stolwijk

17/01/2009 10:24:00
Quote Anchor link
Boaz schreef op 16.01.2009 19:43:
Het design pattern Front Controller is wat mij betreft een 'must read'. Op phpfreakz staat er een toegankelijk artikel over: http://wiki.phpfreakz.nl/FrontController


Daar wordt het inderdaad goed uitgelegd.

Meestal heb je een router/request object. Deze vertelt de frontcontroller wat de Controller en Action zijn.

De frontController include dan het bestand waar deze controller class instaat.
Eventueel wordt er dan eerst een init() method aangeroepen, dan de action, en eventueel wordt daarna met behulp van het view object alles weergegeven.

Nu ontbreekt het Model nog. Dit is een abstractie laag van de data. Bijvoorbeeld van een database tabel, met de methods fetchAll(), fetchRow($id), insert($data), update(), delete().
Om nog een stapje verder te gaan met je models, zou je voor elke rij een eigen object kunnen maken, en voor meerdere rijen (die je bijvoorbeeld met fetchAll) returnt een rowGroup object kunnen maken. Dat rowGroup object maak je dan 'iteratible' door de Iterator interface te gebruiken...

Even samengevat:
Controller handelt (icm de FrontController) alles af, die 'weet' wat er moet gebeuren, haalt de data op via models en stuurt die (met eventuele verwerkingen) door naar het view object.

Model zorgt dus voor je data abstractie. Zo hoef je in je controllers dus geen SQL queries te gaan maken, maar kan je dat eventueel in je models doen. Je model extend bijvoorbeeld Framework_Db_Table

View zorgt voor de weergave. Dit kan bijvoorbeeld een template parser zijn. Via de controller stop je er allemaal variabelen en data in, en via de render() method zet je dan alles op het scherm. Het is handig om dit dan via de FronController af te handelen, zodat je automatisch voor elke Action van de controller een eigen view script (template file) hebt.
die in hun eigen map van de Controller staan. (templates/Gastenboek/comment.php)

Quote:
edit:
Ik vind dit opzich wel een goed plaatje: MVC structuur
En dit is ook wel een makkelijk plaatje.
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
Bo az

Bo az

17/01/2009 20:10:00
Quote Anchor link
Arian schreef op 17.01.2009 10:24:
Nu ontbreekt het Model nog. Dit is een abstractie laag van de data. Bijvoorbeeld van een database tabel, met de methods fetchAll(), fetchRow($id), insert($data), update(), delete().
Om nog een stapje verder te gaan met je models, zou je voor elke rij een eigen object kunnen maken, en voor meerdere rijen (die je bijvoorbeeld met fetchAll) returnt een rowGroup object kunnen maken. Dat rowGroup object maak je dan 'iteratible' door de Iterator interface te gebruiken...


Ook hier is weer een design pattern voor, deze keer heb ik niet zo'n mooie beschrijving kunnen vinden maar Wikipedia legt het wel goed uit: http://nl.wikipedia.org/wiki/Active_record_patroon

Deze kwam ik nog tegen en is wellicht interessant voor de TS:
http://www.phpfreakz.nl/documenten/18-11-06/Presentatie_OOP.pdf
 
M Ypma

M Ypma

17/01/2009 22:11:00
Quote Anchor link
Ik vind Zend Framework geen goed voorbeeld. Ik vind het al vreemd dat het zich een Framework noemt. Alles wat Zend Framework is is een verzameling Classes, een beetje PEAR nieuwe stijl. Maar een Framework, en al helemaal een MVC voorbeeld is het zeker niet.
 
TJVB tvb

TJVB tvb

17/01/2009 22:42:00
Quote Anchor link
Ypma dat ligt eraan hoe jij een framework ziet.
Zend Framework is een componenten framework, je kunt het als 1 geheel framework gebruiken maar je kunt er ook voor kiezen om er gedeeltes (componenten) van te gebruiken. Tevens heb je de mogelijkheid om het framework te gebruiken en voor sommige onderdelen je eigen classes in te zetten.

Het gebruik van een componenten framework biedt je meer vrijheid, het ligt alleen aan de programmeur of het nuttig gebruikt wordt of niet.

In phparch is vorig jaar een korte serie geweest waar 3 verschillende frameworks vergeleken werden om duidelijk te maken wat de verschillen waren. Het laat zien geen enkel framework heilig is, je moet gewoon gebruiken wat het beste past bij een taak. Maar een componenten framework als ZF is in ieder geval in mijn ogen wel een framework.

En hoezo denk jij dat het geen MVC voorbeeld is? Hier ben ik wel nieuwsgierig naar.
 
M Ypma

M Ypma

17/01/2009 22:55:00
Quote Anchor link
@TJVB
Omdat de TS specifiek vraagt naar een mappenstructuur/klassen opzet, dan ben ik van mening dat er betere voorbeelden zijn dan ZF welke ook de MVC onderdelen als components biedt. Hier vind hij moeilijk de informatie waar hij naar op zoek is.
Ik vond laatst trouwens een mooi artikel die een groot nadeel van ZF uit ligt... zal hem ff zoeken en bij een edit hier neer zetten

edit:
gevonden, merk op de chaos bij ZF:
http://phpimpact.wordpress.com/2008/08/04/php-applications-where-is-the-include-coming-from/
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
 
Ivar

ivar

18/01/2009 07:39:00
Quote Anchor link
alweer bedankt allemaal voor de input.

ik dacht al dat het aan mij lag dat ik in m'n zend download erg weinig structuur (lees: mappen) aantrof, maar dat hoort dus zo.
is codeignitor een beter voorbeeld? ik heb deze een keer voor m'n neus gehad en die had duidelijk wel veel mapjes en structuur.
 
TJVB tvb

TJVB tvb

18/01/2009 10:49:00
Quote Anchor link
@Ypma, dat het misschien een wat ingewikkelder structuur klopt, maar dit heeft volgens mij ook veel te maken met de overerving van alles.

Ik heb de afbeeldingen van de verschillende pakketten bekeken
De meeste laden alles vanuit 1 of enkele bestanden, maar wie zegt dat het altijd nodig is. De structuur van requite/include heeft te maken met het feit dat er zo veel mogelijk geprobeerd wordt het pas te laden als het nodig is (oftewel niet gewoon alles in het geheugen stoppen zonder dat het zin heeft).

Ik vindt een mappen structuur van een applicatie niet zo heel spannend, het is veel belangrijker dat het classdiagram goed is. Als je een goede IDE hebt kan die je zo door de bestanden waar de classes staan linken.
Als je het class diagram van ZF bekijkt zie je zeer veel overerving wat een mooi principe is van OOP. Dat het daardoor gelaagd wordt en er soms op het eerste gezicht ingewikkeld uit ziet moet geen probleem zijn.

Dat het dan voor iemand die geen of weinig ervaring met OOP heeft misschien een lastig voorbeeld heeft klopt, maar dat komt niet omdat het niet klopt/slecht is. Juist doordat het meer kennis/inzicht in OOP verlangd.

Ivar ik denk dat het voor een framework belangrijk is dat je de eisen opstelt, een analyse doet en een technisch ontwerp maakt. De mappen structuur komt daarna en is vaak een kwestie van smaak.
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb
 
Jelmer -

Jelmer -

18/01/2009 11:04:00
Quote Anchor link
ZF is niet een framework in de zin van dat het je een invulapplicatie geeft. Het laat het aan jou over om de losse onderdelen aan elkaar te koppelen. Voordeel van de componenten van ZF boven die van anderen is dat ze met elkaar overweg kunnen. Nadeel is dat het een one-size-fits-all oplossing probeert te zijn, waardoor de code niet meer simpel genoemd kan worden. Allemaal lagen van adaptors en decorators, en voor je ene website gebruik je er maar eentje.

Ruby on Rails is bijvoorbeeld een invul-framework om het zo maar even te noemen. Symphony ook. Zodra je het installeert heb je al een werkende website, en die kan je uitbreiden door de juiste bestandjes in de juiste mapjes te gooien. Het voordeel is dat alles veel simpeler is omdat het framework al van een heleboel dingen uitgaat (de mappenstructuur, hoe requests worden afgehandeld, waar en hoe je model eruit ziet) en het nadeel is dat je moet voldoen aan die verwachtingen.
 
Ivar

ivar

20/01/2009 20:10:00
Quote Anchor link
Ik heb het eea uitgetekend (weet iemand hier een goed gratis progje hiervoor, ik heb nu een trial :P ):

Afbeelding

Is dit een aardige opzet? Zal ik voor iedere functie én een frontend én een backend class maken?

PS schrik niet, de download is voor eigen werk :D
Gewijzigd op 01/01/1970 01:00:00 door ivar
 



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.