Hoe deze router werkt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

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 »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Backend Developer Integraties API HBO REST

Samengevat: Deze werkgever is een IT-consultancy. Wil jij werken als Backend Developer Integraties? Heb jij kennis van gangbare berichtformaten? Vaste baan: Backend Developer Integraties API HBO €3.100 - €4.400 Zij bieden innovatieve oplossingen die bedrijven efficiënter en wendbaarder maken, waardoor onze klanten zich net zo snel kunnen ontwikkelen als de business van hen vraagt. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot en ingewikkeld. Hou jij van diepgang

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP Developer ga jij aan de slag met uitdagende software projecten. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Deze software bouw je vooral in PHP en specifiek Laravel. Dit framework kent dus geen geheimen voor jou. De software die jij gaat ontwikkelen is heel divers, van urenregistratiesystemen tot compleet geautomatiseerde tools. In deze veelzijdige functie ga jij je zeker niet vervelen, elke dag bestaat weer uit nieuwe uitdagingen. Bedrijfsprofiel Deze

Bekijk vacature »

Backend Developer Scrummaster .NET

Samengevat: Deze werkgever is een ambitieus internetbedrijf met een passie voor digitale communicatie. Ben jij geschikt als Backend Developer? Heb je ervaring met .NET platform? Vaste baan: Backend Developer / SCRUM Master Scrum HBO WO €3.800 - €6.000 Deze werkgever is een innovatief bedrijf met enthousiaste mensen die jarenlang ervaring hebben met het ontwikkelen internet- en intranetoplossingen. Wij houden van korte lijnen en open en eerlijke communicatie. Wij zetten graag onze jarenlange ervaring in om perfect werkende oplossingen te ontwikkelen. Wij ondersteunen dienstverlenende organisaties bij het ontwikkelen en realiseren van een effectief, adaptief communicatieplatform. Je ontwikkelt met ons de meest

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »
Yoeri Achterbergen

Yoeri Achterbergen

17/07/2019 00:41:34
Quote Anchor link
De titel zegt het al, ik zou graag wat uitleg willen hebben betreft onderstaande PHP code.
- Wat gebeurd er in deze code zodat de file erbij gepakt word?
Ik heb al het een en ander proberen op te zoeken betreft classes maar kom er niet goed wijs uit en hoop dat iemand mij aan de hand van onderstaande code mij kan helpen het te snappen :)


INDEX.PHP
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include 'router.php';
$request = $_SERVER['REQUEST_URI'];
$router = new router($request);

$router->get('/','app/home');
$router->get('post','app/post');  
$router->get('hello','app/hello');  
?>


ROUTER.PHP
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
17
18
19
20
<?php
class router{
    private $request;
    
    public function __construct($request){
        $this->request = $request;
    }

    
    public function get($route, $file){
        $uri = trim($this->request, "/");
        $uri = explode("/", $uri);
        
        if($uri[1] == trim($route, "/")){
            array_shift($uri);
            $args = $uri;
            require $file .'.php';
        }
    }
}

?>
 
PHP hulp

PHP hulp

25/04/2024 06:46:40
 
- Ariën  -
Beheerder

- Ariën -

17/07/2019 00:50:44
Quote Anchor link
De get()-method werkt hier best eenvoudig.
Aan de hand van de URL in $_SERVER['REQUEST_URI'] wordt de juiste waarde van het eerste argument (bijv. hello) gebruikt om app/hello.php te openen.

Het leuke in dit forum met de codeblokken is dat je ook op de functies kan klikken voor extra uitleg. Een goede editor zou dit ook kunnen. Ook met het echo'en van wat variabelen in je script valt dit eenvoudig te debuggen.
Gewijzigd op 17/07/2019 00:52:31 door - Ariën -
 
Yoeri Achterbergen

Yoeri Achterbergen

18/07/2019 14:02:13
Quote Anchor link
Hi Arien,


Classes zijn helemaal nieuw voor mij en wil graag de structuur ervan snappen.
Zo wil ik een error 404 kunnen routen maar dan moet ik wel het bovenstaande verhaal snappen :)
 
- Ariën  -
Beheerder

- Ariën -

18/07/2019 14:08:42
Quote Anchor link
Ik kan wel uitleggen hoe methods en objecten werken, maar daar is genoeg over te vinden op het grote internet ;-)

Kijk bijvoorbeeld eens naar dit:
https://www.phphulp.nl/php/tutorial/overig/oop-beginnershandleiding-php5/701/object-georinteerd-programmeren/1838/

En met file_exists kan je kijken of een aangeroepen bestand bestaat of niet bestaat.
Gewijzigd op 18/07/2019 14:09:25 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

18/07/2019 14:49:34
Quote Anchor link
Het is waarschijnlijk efficiënter om een autoloader te gebruiken en je class-namen een logische structuur te geven.

Bijkomend voordeel van het gebruik van een autoloader is dat dure functies (file_exists()) en extra aanroepen zoals include, require et cetera overbodig worden.

Een 404 "route" je waarschijnlijk ook niet, maar dit zou je moeten "berekenen". Nu include je simpelweg $file.php. En dit levert je niet eens een foutmelding op als deze ontbreekt, dus in dat opzicht zou -op dit moment, met deze werkwijze- een require_once beter zijn misschien.

Je moet kunnen constateren dat een pagina ontbreekt, dus je moet een soort van lijst of middel hebben om te bepalen welke pagina's "bestaan". Staat deze niet op de lijst dan serveer je de 404-pagina, inclusief een 404 Page Not Found HTTP-header.

Echter op het moment dat je je gaat bezig houden met routing moet je meteen een aantal zaken tegelijkertijd regelen in je applicatie om dit alles soepel te laten verlopen. Dit gaat veel verder dan wat routing-functionaliteit alleen. Dit heeft ook te maken met de organisatie en naamgeving van classes en de flow van pagina-aanroepen door je applicatie. Ook moet je gaan nadenken hoe je pagina's afschermt voor publiek als je speciale rechten nodig hebt om deze op te vragen. En dit alles moet soepel geïntegreerd zijn tot één harmonisch geheel.
Gewijzigd op 18/07/2019 14:50:38 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

26/07/2019 10:05:26
Quote Anchor link
Nu is dit eigenlijk nog een hele simpele router, maar een router in een framework is meer afhankelijk van classes en controllers, en is wat vrijer in te stellen.

Bekijk als voorbeeld eens die van Laravel:
https://laravel.com/docs/5.8/routing
Gewijzigd op 26/07/2019 13:34:33 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

26/07/2019 12:13:35
Quote Anchor link
- Ariën - op 26/07/2019 10:05:26:
Bekijk eens die van Laravel:
https://laravel.com/docs/5.8/routing

Mja, maar dat is documentatie waarin héél summier wordt uitgelegd wat het doet en welke opties je hebt. Daar wordt ook enkel uitgelegd wat het doet, maar niet waarom het zo is opgezet. En als je verder niet bekend bent met de intrinsieke werking en filosofie van Laraval zelf dan helpt je dat niet zoveel. Ook zit daar redelijk veel jargon in die verder op geen enkele manier wordt toegelicht. Deze wordt bekend verondersteld. Misschien is dat op dit moment een (of enkele) brug(gen) te ver.

Zou het niet beter zijn om te beginnen bij wat routing nu precies inhoudt, wat de (algemene) principes hiervan zijn, waarom het uberhaupt fijn is om over zulke functionaliteit te beschikken in je applicaties en in welke situaties je routing het beste kunt gebruiken (je hebt het namelijk lang niet altijd nodig)?

Vervolgens zul je uit moeten weiden hoe je dit handig aanpakt. Afhankelijk van de vrijheid die je wilt hebben in de naamgeving van je URLs zal de routingfunctionaliteit die hier op inhaakt complexer worden. Hier zitten dus ook allerlei afwegingen/tradeoffs in.

Maar het simpelweg doorspitten van een documentatie verschaft je geen inzicht over de beslissingen die onderweg zijn genomen, en waarom specifiek is besloten om die aanpak te volgen - het toont je enkel het eindresultaat, dit keer in het Laravel-dialect. In dat opzicht is dat niet echt leerzaam omdat dit geen inzicht geeft over wat nu eigenlijk belangrijk is bij routing. Het geeft je simpelweg een aanpak, die je verder inhoudelijk niet hoeft te doorgronden om deze te kunnen gebruiken.
 
- Ariën  -
Beheerder

- Ariën -

26/07/2019 13:05:16
Quote Anchor link
Het gaat puur om voorbeelden over wat een router kan, en hoe uitgebreid dit kan reiken. Persoonlijk vind ik zeer duidelijk.

Verder heb je op GitHub ongetwijfeld ook een hoop router-classes die je in eigen projecten kan inbouwen.
Gewijzigd op 26/07/2019 13:06:47 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

26/07/2019 13:22:36
Quote Anchor link
- Ariën - op 26/07/2019 13:05:16:
Persoonlijk vind ik zeer duidelijk.

Dit is compleet irrelevant. Het gaat niet om jou. Het zou moeten gaan over de beeldvorming van wat "routing" is. Concreet, hoe een webserver externe verzoeken vertaalt naar een interne afhandeling.

Het gaat ook niet om de smaak waarin je dit uiteindelijk implementeert of overneemt uit een framework. Het gaat erom dat je de principes snapt.

Dit resulteert in een lijst voor de afhandeling van routing-specifieke taken. Dit is puur functioneel. In welke vorm je dit dan vervolgens giet doet er niet toe, zolang dit maar alle taken dekt.
 
- Ariën  -
Beheerder

- Ariën -

26/07/2019 13:30:28
Quote Anchor link
Het gaat gewoon over de mogelijkheden van een gemiddelde router tegenover zijn gebruikte router.

Wat is de exacte nut en de werking van een router is, daar zijn op internet ook een hoop dingen over te vinden. Wie weet heeft de topicstarter er vast wel wat aan.
 



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.