[OOP] Routing: hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Team Lead/ Lead developer gezocht (Hands-on, PHP,

Functie Als Team Lead ben je de leider van één van de ontwikkelteams binnen de organisatie. Je leidt als lead developer een goed draaiend team dat werkt aan complexe en duurzame applicaties en API’s. Vanuit je kennis en ervaring ben je in staat het grote plaatje te blijven overzien, en kritisch mee te denken over bijvoorbeeld de architectuur, maar ook de algehele aanpak binnen het project. Je laat je team niet alleen technisch goed functioneren maar ben ook betrokken bij het menselijke aspect. Zo weet jij je collega’s te motiveren en begeleiden in hun dagelijkse werk. Buiten het team ben

Bekijk vacature »

Medior PHP Developer

Functie omschrijving Ben jij een getalenteerde PHP Developer en aan de slag in een gemotiveerd team? Lees dan snel verder! Voor onze opdrachtgever in de omgeving van Valkenswaard zijn we op zoek naar een ervaren PHP developer. Jij gaat hier zorg dragen voor het optimaliseren en up-to-date houden van de bestaande applicaties. Je werkt verder aan de applicaties die jij verder ontwikkelt. Dit doe je voornamelijk met PHP en MySQL. Verder ga je je bezig houden met: Het uitbouwen van het E-commerce software platform. Deelnemen aan overleggen met het team. Het ondersteunen van jouw team developers (3 man) en helpen

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Randstad - Freelance Backend Developer/ Data Engin

Starting date: 10.05.2023 Salary range: €67,00 - €77,00 Duration: 6 months Hours: 40 Working model: Hybrid* MUST be NL based Job description: Our vision is to have a consistent and data driven experience for all sales across all our operating companies. Our mission is to enable our salespeople to be able to reach out to the right company at the right time. We do this by creating data driven micro services and solutions. We mainly focus on implementation in the Google Cloud but also integrate with local systems and other cloud solutions. A typical day: As a back-end developer you

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 »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

Starter/junior Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als starter/junior developer zul je direct begeleid worden door een senior uit het team. Het is van belang dat

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een ontwikkelteam met 15 developers en twee testers. Samen zijn jullie verantwoordelijk voor financiële applicaties met meer dan 50.000 gebruikers. Een deel van het team is verantwoordelijk voor de webapplicaties van deze organisatie. Ook zijn er twee app ontwikkelaars werkzaam in het team die zich focussen op de mobiele applicatie. Als .NET ontwikkelaar ga jij aan de slag met de webapplicaties van deze organisatie. Hierbij maak jij o.a. gebruik van C# .NET, ASP.NET, T-SQL, Angular en TypeScript. De nadruk van jouw functie ligt wel op de backend van de applicatie. Wat jouw functie

Bekijk vacature »

Digital Agency is looking for PHP developers!

Functie The team currently has 20 colleagues, consisting of developers (front and backend) and the operations team, which also includes management and two scrum masters. They are looking for a PHP developer who is able to work independently. You will work in one of the three scrum teams and start working on a project for the customer. The interesting thing about this is that you do have variety in terms of work, but at the same time continuously work for existing customers. This also gives you the opportunity to really go into depth and develop innovative technical solutions. In terms

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

25/11/2024 16:56:03
 
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.