Hoe deze router werkt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

Anaplan Developer

Dit ga je doen What are you going to do: Picking up Stories: Design planning had, how are we going to build it in Anaplan; Talking to the end user to build a forecasting model; Having contact with the data team about which data is needed; Being able to convert an Excel sheet into a 3, 4 or 5 dimensional modeling environment; Giving knowledge sessions about Anaplan; Solving incidents; Making instructional videos on how teams should read forecasts; Writing blogs about forecasting. Hier ga je werken We are looking for an Anaplan Builder to deliver end-to-end solutions within a big

Bekijk vacature »

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Laravel PHP developer in een jong team

Bedrijfsomschrijving Als je op zoek bent naar een werkplek waar plezier en uitdaging hand in hand gaan, dan is dit bedrijf de juiste keuze voor jou. Hier kun je werken aan uitdagende projecten en krijg je als developer veel verantwoordelijkheid. Het bedrijf waardeert kwaliteit boven kwantiteit en richt zich op het ontwikkelen van hoogwaardige applicaties en websites waar klanten enthousiast over zijn. Dit bedrijf is vooruitstrevend en streeft naar het leveren van de best mogelijke resultaten voor hun klanten. Als medior PHP ontwikkelaar met 3 jaar ervaring ben jij de persoon die we zoeken. Je krijgt hier de kans om

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Senior Java developer

Dit ga je doen Jouw taken als Senior Java Developer zijn: Het maken van strategische keuzes omtrent de nieuwbouw van applicaties; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java FX, JDBC, SQL, REST, Jax-RS, JSON, Maven, JUnit en Spring (boot)); Reviewen van code en feedback geven op collega developers; Analyseren en oplossen van bugs/incidenten door het onderlinge verband te kunnen leggen van verschillende losstaande systemen. Hier ga je werken Het bedrijf waar je als Senior Java Developer komt te werken staat internationaal bekend om het testen van bodemstructuren door middel van echotechnieken en beeldherkenning.

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 »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Full Stack Developer

Ben jij een kei van een full-stack developer? Heb je ambitie om te groeien en jezelf te ontwikkelen binnen een ambitieus bedrijf? Gaat jouw hart sneller kloppen van transpilers of frameworks zoals Angular, Vue of React? Dan ben jij de persoon die wij zoeken! Voor onze opdrachtgever zijn wij op zoek naar een full-stack developer om onderdeel te zijn van een team dat bestaat uit gedreven developers. Ieders met hun eigen specialiteiten en kennis van de projecten en behoeften vanuit de product owners. We zoeken iemand die met zijn/haar huidige competenties en domeinen dit team wil begeleiden, stimuleren en tevens

Bekijk vacature »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

.NET Developer

Functieomschrijving Ben jij klaar voor de volgende stap in jouw carrière? Kom werken bij dit kleine softwarebureau en werk aan de gaafste maatwerk projecten. Je komt te werken in een klein development team en werk nauw samen met elkaar, om maatwerk software te leveren en bij te dragen aan bedrijfsautomatiseringen. Je gaat werken met de Microsoft stack en technieken als .NET, C#, Entity, MVC, SQL server. In de functie krijg je veel vrijheid om zelf beslissingen te nemen en je hebt impact op de bedrijfsprocessen. Bedrijfsprofiel Dit familiebedrijf bestaat al ruim 20 jaar. Zij hebben een vast netwerk van klanten,

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

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 12:22:53
 
- 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.