[OOP] Routing: hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een development team met één Senior .NET developer en één junior .NET developer. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit moment veel gebruik van .NET met ASP.NET. Komend kwartaal gaan wij wel gedeeltelijk overstappen naar .NET Core. Verder werken wij ook met SOAP, REST, JSON, HTML5, CSS3

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

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 »

Database ontwikkelaar

Functieomschrijving Wil jij aan gave logistieke softwareprojecten werken en bij een uniek softwarebedrijf in de regio van Tilburg? Wacht niet langer en reageer snel op deze vacature. Als Database ontwikkelaar ga je aan de slag het schrijven van stored procedures en verder uitbouwen van de SQL database. Je werkt in een database team, met allemaal mensen die energie krijgen van software en techniek. Verder krijg je als taak: Optimaliseren en uitbouwen van de MS SQL databases die gebruikt worden; Optimaliseren van query's, waardoor er efficiënter gewerkt kan worden; Je werkt met de technieken T-SQL of PL/SQL; Bij interesse kan je

Bekijk vacature »

Dynamics Ontwikkelaar

Dit ga je doen Ontwikkelen van Dynamics 365 voor de interne uitrol; Samen met de consultants sparren met klanten over de wensen en eisen; Ontwikkelen van Dynamics 365 voor verschillende grote klanten; Technische analyse en testen; Meedenken over het gebruik en de richting van Dynamics binnen de organisatie. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

Bekijk vacature »

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

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 »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

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/04/2024 04:55:25
 
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.