[OOP] Routing: hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full stack developer Node.js

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 »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

C# Unity Developer

Functieomschrijving Ontwikkel jij mee door applicaties te bouwen die bijdragen aan het optimaliseren van processen? Voor een erkende werkgever in regio Tilburg zijn wij op zoek naar een Unity C# Developer die graag de uitdaging aangaat! Jouw werkzaamheden zullen er als volgt uitzien: Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Je bent verantwoordelijk voor het uitvoeren van updates/aanpassingen aan de reeds draaiende applicaties. Bedrijfsprofiel Je komt te werken voor een internationale werkgever in regio Tilburg. Samen met een vooruitstrevend team

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »

Full stack developer Node.js, React Remote

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 »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »
- Raoul -

- Raoul -

25/11/2012 21:57:04
Quote Anchor link
Hallo allemaal,

Weet er iemand hoe je correct kunt routen dmv OOP in PHP?
Ik heb al een klein opzetje met de werking ervan gemaakt, wat denken jullie ervan?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$route
= new Route();
$route->setPattern('/home');
$route->setDispatchingFile('home.php');

Router::add($route);

Router::dispatch();
?>
 
PHP hulp

PHP hulp

03/01/2025 09:39:42
 
Jasper DS

Jasper DS

25/11/2012 22:11:22
Quote Anchor link
Misschien kan je iets doen met de reacties van wouter uit dit topic of is dat niet wat je wilt doen?

En misschien kan je ook eens naar het MVC patern zien. Dat doet de routering ook hoe jij het wilt denk ik.
 
Wouter J

Wouter J

25/11/2012 22:27:58
Quote Anchor link
Static functies hou ik nooit van, dus dat zal ik al niet doen.

Daarnaast klopt het wel half, behalve dat ik vind dat een Router moet matchen en een Kernel/FrontController moet dispatchen.

Kijk inderdaad eens naar deze reactie. Hierin som ik 3 opties op:
- Het geweldige KISS voorbeeld van Pim;
- Silex;
- Symfony2 Componenten.

Daarnaast heb ik ook ooit zoiets opgebouwd: code en voorbeelden
 
- Raoul -

- Raoul -

26/11/2012 16:40:29
Quote Anchor link
Wouter bedankt voor je reactie.
Ik keek even naar je code voorbeelden en ik zag een Collection class?
Nu dacht ik aan het volgende

1) Abstract class maken 'Collection'
2) Class maken 'RouteCollection' die 'Collection' extends
3) Route's toevoegen aan de RouteCollection
4) Een frontcontroller maken die uiteindelijk dan in een RouteCollection kijkt en de juiste route inlaad.

Zoiets?
Gewijzigd op 26/11/2012 16:47:52 door - Raoul -
 
Wouter J

Wouter J

26/11/2012 17:30:52
Quote Anchor link
Ja, een collection is een erg handige klasse om routes te groeperen. Je kan bijv. bij een een collection een prefix instellen (bijv. /admin) dan krijgt elke route in die collection /admin ervoor:
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
<?php
$collection
= new RouteCollection();
$collection
    ->addRoute('frontpage', new Route('/', 'StoreController::showFirst10'))
    ->
addRoute('show_product', new Route('/product/:slug', 'StoreController::show'))
    ->
addRoute('buy_product', new Route('/product/:slug/buy', 'StoreController::buy'))
;


$adminbundle = new RouteCollection();
$adminbundle
    ->addRoute('create_product', new Route('/product/create', 'ProductBackendBundle::create'))
    ->
addRoute('create_user', new Route('/user/create', 'UserBackendBundle::create'))
;


$collection->addCollection($adminbundle);
?>


Je kan zelfs addRoute an addCollection vervangen door een simpele add method, deze kijkt of je een Route of een RouteCollection toevoegt en roept dan de juiste collection aan.

Deze stop je in een Router en dan roep je Router::match(Request $request) aan. Dan krijg je een mooie recursieve loop totdat je route is gevonden:
Hij gaat elke route of routecollection af en roept de match aan. De Route::match() method is uit eindelijk de method die kijkt of de route matched. Als het weer een routecollection is gaat die weer elke method af en roept weer de match method aan en zo kun je eindeloos veel collections in elkaar stoppen.

En ja, wat ik hierboven vertel komt inderdaad overeen met wat jij hierboven schets (behalve dat ik eerder een Interface zou maken dan een abstracte klasse).
 
- Raoul -

- Raoul -

26/11/2012 17:51:47
Quote Anchor link
Wow Wouter bedankt voor je reactie!
Zo'n Request class lijkt me wel mooi.
Ik kan dan toch ook andere functie's invoegen in zo'n Request als bijvoorbeeld:
- getRequestMethod()
- getUri()
 
Wouter J

Wouter J

26/11/2012 18:51:04
Quote Anchor link
Ja, natuurlijk, het is jou klasse. Kijk anders eens naar dit topic: http://www.phphulp.nl/php/forum/topic/request-en-response/87675/
 
- Raoul -

- Raoul -

26/11/2012 18:59:47
Quote Anchor link
Bedankt voor de link, ik ga aan de slag.
 
Nicky Monsma

Nicky Monsma

01/12/2012 19:38:10
Quote Anchor link
public function InitializeRendering()
{
if(strlen($_GET['page']) == 0)
{
$_GET['page'] = 'frontpage';
}

$Controller = ucfirst(strtolower($_GET['page'])); // onze controller naam

if(!file_exists('Application/Controller/'.$Controller.'.php'))
{
// als controller niet bestaat add error controller
$Controller = ucfirst(strtolower('error'));
}

include_once('Application/Controller/'.$Controller.'.php'); // laad de controller in

$Class = new $Controller();

$Class->Render(); // laat de data uit de controllers
}


dit is een voorbeeld van hoe ik het altijd doe je hebt bijvoorbeeld index.php?page=homepage

en hier nog even de .htacces

RewriteEngine on
RewriteRule ^(|/)$ index.php
RewriteRule ^([a-zA-Z0-9/_-]+)(|)$ index.php?page=$1

ErrorDocument 400 index.php?page=error
ErrorDocument 401 index.php?page=error
ErrorDocument 403 index.php?page=error
ErrorDocument 404 index.php?page=error
ErrorDocument 500 index.php?page=error
ErrorDocument 501 index.php?page=error
ErrorDocument 502 index.php?page=error
ErrorDocument 503 index.php?page=error
ErrorDocument 504 index.php?page=error
ErrorDocument 505 index.php?page=error
 



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.