[OOP] Routing: hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Technical Asset Specialist Substations

TenneT is growing fast to realize its strategic ambitions. We play a leading role in driving the energy transition. We are looking for a passionate Technical Asset Specialist for substations (onshore and offshore) at our location in Arnhem who will contribute to this and that might be you? Your contribution to TenneT We are searching for a motivated and engaged colleague as a technical asset specialist (onshore and offshore) for instrument transformers and surge arresters, with preferably a strong background in the area of insulation coordination. As a specialist for insulation coordination you are responsible for overarching topics regarding insultation

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Informeel bureau zoekt Senior PHP developer

Functie Als senior PHP developer neem je het voortouw in ontwikkeltrajecten en ben je in staat werk uit te leggen aan collega’s om zo je kennis met hen te delen. Je deinst niet terug voor ingewikkelde projecten. Deze zie jij alleen maar als uit uitdaging. Je werkt doorlopend aan klantcases (en hierdoor je klant echt leert kennen), maar toch ben je afwisselend bezig. Dit alles in een vrije en ontspannen werksfeer, met een team van gelijkgestemde. Binnen de development teams werken ze met o.a. PHP, Laravel, React, Node, Elastic, Amazon AWS, JIRA, Solid, Domain-driven-design, Doctrine, Redis, docker, Kubernetes, CI, PHP

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

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 »

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 »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

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 »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

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 »

Medior .NET developer

Functie Jij gaat als Medior .NET ontwikkelaar aan de slag in ons scrumteam met 6 developers die gepassioneerd en actief bezig zijn om onze spelers kwalitatieve en mooie spelervaringen aan te bieden. Als medior .NET developer ga jij werken aan een technisch hoogwaardig platform welke bezoekerspieken verwerkt van tienduizenden tot honderdduizenden gebruikers per minuut! Ons scrumteam werkt in drie wekelijkse sprints en wij beginnen iedere ochtend met een stand-up. Jij werkt bij ons met C# .NET, .NET Core, React.JS, Xamarin, Azure, Docker en Kubernetes. Wij hechten enorm veel waarde aan het leveren van hoogwaardige en kwalitatieve code. Zodra jij de

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 »
- 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

29/03/2024 14:02:49
 
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.