Hoe deze router werkt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 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

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 »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

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 »

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 »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

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

16/04/2024 12:30:16
 
- 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.