route class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet

Bekijk vacature »

Gezocht: Ervaren VB6 developer met C# ambitie!

Bedrijfsomschrijving Dit bedrijf is een vooraanstaande softwareleverancier die gespecialiseerd is in het ontwikkelen van software pakketten voor autoschade herstel bedrijven. De software wordt gebruikt door meer dan de helft van alle autoschade herstel bedrijven in Nederland. Het team van professionals is op zoek naar getalenteerde collega developers die hun vaardigheden willen inzetten om het bedrijf te laten groeien. Functieomschrijving Voor dit bedrijf zoek ik een ervaren VB6 / VB.NET developer met interesse om op termijn verder te gaan in C#. In deze functie ben je verantwoordelijk voor het onderhouden van de bestaande softwarepakketten. Een deel van de code is nog

Bekijk vacature »

Junior Fullstack Developer

Functie omschrijving Heb jij je universitair diploma Informatica afgerond en ben jij op zoek naar een startersfunctie waar jouw ontwikkeling in een hoog vaandel staat? Voor een softwarebedrijf in Amsterdam zijn wij op zoek naar een Junior Fullstack Developer. Je begint met een op maat gemaakte training om de kennis bij te spijkeren die jij nog mist. Uiteraard leer je het meeste tijdens je werk, maar de training geeft je hiervoor alvast de juiste handvatten. Je kunt het volgende verwachten! Jij ontwikkelt in technieken als Java, Javascript en SQL. Je werkt hierbij volgens de Agile/Scrum methode; Na het afronden van

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

Front End Developer React Vue

Dit ga je doen Meewerken aan de implementaties en ontwikkeling van nieuwe functionaliteiten van de webapplicaties; Ontwikkelen met o.a. React en Vue en HTML/CSS, ook krijg je in verband met de samenwerking ook affiniteit met de backend Ruby on Rails; Ontwikkeling aan de front end voor de koppelingen tussen de diverse systemen; Ontwerpen van interfaces en een bijdrage leveren aan de gebruikerservaring; Zorgdragen voor hoge kwaliteit van code en jezelf (en anderen) blijven verbeteren; Als Senior Front End Developer begeleid je zelf ook FE-development projecten, hierin leid je de projecten en pak jij het initiatief op (bv integratieprojecten). Hier ga

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »

Pagina: 1 2 3 volgende »

Tom Swinkels

Tom Swinkels

22/02/2013 23:03:53
Quote Anchor link
Beste Developers,

Ik zie vaak allemaal ingewikkelde routers tegen komen op internet.

Na even te zoeken kwam ik een vrij simpele router tegen hier op PHPHulp.

Wat is de reden van een uitgebreide moeilijke router? Na mijn mening is dit toch prima?

Enige probleem dat ik nu nog heb, is dat wanneer ik nu naar /artikel/bewerk/234/ dat hij de route /artikel/ pakt, hoe kan ik dit op de beste manier oplossen? Alles een prioriteit meegeven, sorteren op langste route? Wat is de beste manier hiervoor? Of gewoon een kwestie van de routes aanmaken in de goede volgorde?

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
class Router
{
    private $_routes;

    public function __construct()
    {

        $this->_routes = array();
    }


    public function setRoute( Route $route )
    {

        $this->_routes[] = $route;
    }


    public function match( $query )
    {

        $routes = $this->_routes;
        if( $routes )
        {

            foreach( $routes as $route )
            {

                $match = $route->match( $query );
                if( $match )
                {

                    return $match;
                }
            }
        }

        return false;
    }
}


class Route
{
    private $_regex;
    private $_controller;

    public function __construct( $pattern, $controller )
    {

        $this->_regex = preg_replace( '#:([a-z])+#','(?P<$1>[^/]+)', $pattern );
        $this->_controller = $controller;
    }


    public function match( $query )
    {

        if( !preg_match( '#'.$this->_regex.'#', $query, $matches ) )
        {

            return false;
        }


        $controller = new Controller();
        $controller->setName( $this->_controller );
        return $controller;
    }
}


class Controller
{
    private $_name;

    public function setName( $name )
    {

        $this->_name = $name;
    }

    public function getName()
    {

        return $this->_name;
    }
}


$router = new Router();
$router->setRoute( new Route( '/artikel/', 'article.view.module') );
$router->setRoute( new Route( '/artikel/bewerk/:id', 'article.edit.module') );
$router->setRoute( new Route( '/artikel/verwijder/:id', 'article.delete.module') );

$controller = $router->match( $request->server( 'REDIRECT_URL' ) );
?>


Even de php-tags geplaatst voor de kleurtjes[/modedit]
Gewijzigd op 07/09/2013 17:20:38 door Nick Dijkstra
 
PHP hulp

PHP hulp

25/04/2024 13:18:44
 
Ward van der Put
Moderator

Ward van der Put

23/02/2013 13:43:43
Quote Anchor link
Hint: je router lijkt op de URI-router van bijvoorbeeld CodeIgniter. Een URL wordt dan min of meer met een explode op / gekoppeld aan een controller class/method:

example.com/controller/function/id

Dat is hetzelfde als je probeert te bereiken met:

/artikel/bewerk/234/

Als je daarmee alleen bij de class /artikel/ uitkomt, mis je dus nog de mapping naar de methode/functie.
 
Tom Swinkels

Tom Swinkels

24/02/2013 20:17:27
Quote Anchor link
Ward, volgens mij snap je niet helemaal wat ik bedoel. Het gaat met namen over de routes die aangemaakt worden.
 
Ward van der Put
Moderator

Ward van der Put

25/02/2013 07:25:54
Quote Anchor link
Routes worden afgehandeld in de volgorde waarin je ze definieert: zodra er een match is, wordt die route gekozen. Je moet daarom werken van specifiek (een lang pad zoals /artikel/bewerk/234/) naar generiek (een kort pad zoals /artikel/).

Goed overzicht van de routing in CodeIgniter en daarin ook de eerste “note”:

http://ellislab.com/codeigniter/user-guide/general/routing.html
 
Wouter J

Wouter J

25/02/2013 10:45:33
Quote Anchor link
Of je maakt gebruik van ^ en $ in je regex, waardoor je dat probleem niet meer hebt.

Waarom deze Router niet snel gebruikt zou worden in grote applicaties en grote frameworks:
- Je hebt geen collections. Hierdoor kun je bijv. niet een hele groep routes tegelijkertijd een prefix meegeven. Denk bijv. aan een aparte groep voor admin routes, die je dan de '/admin' prefix geeft.
- Je mist het gebruik van requirements. Ik kan bijv. niet aangeven dat :id een getal moet zijn.
- Je mist default values, ik kan niet zeggen dat /:slug standaard de waarde 'home' krijgt.
- De Route object mag echt niet gaan bepalen dat er een controller naam wordt teruggegeven. Dat is de taak van een FrontController of Kernel.
- De manier hoe jij met controllers omgaat vind ik nu nog een beetje vreemd, maar misschien wordt het straks wel mooi.
 
Tom Swinkels

Tom Swinkels

15/08/2013 21:40:47
Quote Anchor link
Ik kom toch nog even terug op mijn topic, ik heb het probleem nog steeds niet kunnen oplossen.

Het probleem dat mijn router niet doet wat ik wil en nergens goede / mooie voorbeelden kan vinden zorgt er steeds voor dat ik vast loop.

Graag wil ik gebruik maken van het HMVC pattern.

<#id> moet een getal zijn
<:slug> moet een string zijn

Hopelijk kunnen jullie mij de goede richting in duwen.
 
Tom Swinkels

Tom Swinkels

07/09/2013 01:54:20
Quote Anchor link
*schop*

Ook lees ik dat vele bij het toevoegen van een route een array meesturen met de Contoller, Module en Action.
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$router->setRoute( new Route( '/artikel/bewerk/:id', array( 'module' => 'article', 'controller' => 'edit', 'action' => 'index' ) ) );

Waarom wordt er gekozen voor een array? Waarom wordt er niet gekozen voor deze manier?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$router->setRoute( new Route( '/artikel/bewerk/:id', 'article', 'edit', 'index' ) );
Gewijzigd op 07/09/2013 01:54:37 door Tom Swinkels
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/09/2013 09:57:51
Quote Anchor link
waarom doe je het niet gewoon zo?
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
<?php

$routes
= array(
    'home',
    'contact',
    'contact/thanks'
);


$uri = $_SERVER['PATH_INFO'];
$uri = strtolower($uri);
$uri = substr($uri, 1);

if(array_search($uri , $routes))
    echo $uri;
else
    echo 'not found';

?>
 
Tom Swinkels

Tom Swinkels

07/09/2013 12:12:15
Quote Anchor link
@Frank, dit is totaal niet wat ik wil.

Iemand anders die er even een oog op wil werpen?
 
Ozzie PHP

Ozzie PHP

07/09/2013 15:02:18
Quote Anchor link
@Frank: dat is iets heel anders dan wat de topic starter vraagt :)

@Tom: waarom er voor een array wordt gekozen? Stel dat de routes uit een configuratiebestand komen (wat heel gebruikelijk is) dan kun je ze via een foreach-loop gemakkelijk inladen. Dan krijg je zoiets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($routes as $route) {
  $router->setRoute(new Route($route['url'], $route['parameters']));
}

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/09/2013 15:33:28
Quote Anchor link
Tom Swinkels op 22/02/2013 23:03:53:
Enige probleem dat ik nu nog heb, is dat wanneer ik nu naar /artikel/bewerk/234/ dat hij de route /artikel/ pakt, hoe kan ik dit op de beste manier oplossen?


Dat is waar ik een oplossing op gaf dat natuurlijk verder uitgewerkt kan worden.
 
Ward van der Put
Moderator

Ward van der Put

07/09/2013 15:40:44
Quote Anchor link
Je kunt routing via URL's vergelijken met het ontleden van een zin: “X moet dit met dat doen.” Je hebt dan een onderwerp, een persoonsvorm, een lijdend voorwerp en een meewerkend voorwerp.

Met een array kun je in één keer een compleet verhaal vertellen. Met losse strings blijft het bij die ene instructie.
 
Wouter J

Wouter J

07/09/2013 17:00:02
Quote Anchor link
Met een array ben je ook veel meer flexibel.

En voor het antwoord op je vraag, die heb ik al lang beantwoord: "Of je maakt gebruik van ^ en $ in je regex, waardoor je dat probleem niet meer hebt."
 
Ozzie PHP

Ozzie PHP

07/09/2013 17:02:03
Quote Anchor link
Ward van der Put op 07/09/2013 15:40:44:
Met een array kun je in één keer een compleet verhaal vertellen. Met losse strings blijft het bij die ene instructie.

Ward, is toch ook een kwestie van persoonlijke voorkeur?

Je zou een nieuwe user zo kunnen aanmaken:

$user = new User('Piet', 'Amsterdam', 35);

Of zo:
$user_info = array('Piet', 'Amsterdam', 35);
$user = new User($user_info);

Alleen als de informatie niet hard-coded is (wat meestal het geval is), en bijv. uit een configuratiebestand, formulier of database komt, dan lijkt me de laatste optie handiger.
Gewijzigd op 07/09/2013 17:02:55 door Ozzie PHP
 
Ward van der Put
Moderator

Ward van der Put

07/09/2013 17:23:44
Quote Anchor link
Ja en nee Ozzie, kijk bijvoorbeeld naar je eigen voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$user
= new User('Piet', 'Amsterdam', 35);
?>

Omdat we alleen de waarden noemen maar niet de eigenschappen, kunnen we nooit meer een 35-jarige Piet met voorlopig onbekende woonplaats verwerken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$user
= new User(35, 'Piet');
?>

Tweede punt is dat we zonder array niet Piet én zijn hele voetbalclub in één keer kunnen toevoegen. Nee, zonder array moeten we Piet, Jan, Joris, Corneel allemaal één voor één toevoegen.
Gewijzigd op 07/09/2013 17:24:38 door Ward van der Put
 
Wouter J

Wouter J

07/09/2013 17:24:39
Quote Anchor link
Wat is vooral is in dit voorbeeld: Wie zegt dat die route aan een controller wordt gekoppeld? Dat is helemaal niet de taak van de Routing, dat moet iets als een ControllerResolver of FrontController doen. Omdat dat niet de taak is van Routing moet je in routing ook geen specifieke argumenten maken voor deze dingen.
 
Ozzie PHP

Ozzie PHP

07/09/2013 20:31:32
Quote Anchor link
@Ward: dan kun je toch ook zoiets doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$user
= new User('Piet', false, 35); // woonplaats onbekend
?>


Een voetbalelftal toevoegen zou je inderdaad in een array doen... maar heeft niks met een user object te maken uiteraard. Maar wat zou dan de stelregel moeten zijn? Alles wat bij elkaar hoort (wat toebehoort aan 1 persoon of ding) in een array stoppen?
 
Tom Swinkels

Tom Swinkels

08/09/2013 04:49:04
Quote Anchor link
Bedankt voor alle reacties.

Ik denk dat je bij een route altijd een controller, action en model nodig hebt?

Maar ik snap jullie reacties, de vraag is alleen of dat hier voor komt?
Mijn voorkeur gaat altijd naar setters, omdat je dan namelijk weet wat er in die setter thuis hoort.
Wanneer je dus alles direct in de construct gooit, kan het zijn dat je soms niet meer weer welke volgorde e.t.c
 
Wouter J

Wouter J

08/09/2013 13:22:38
Quote Anchor link
Ik hou me altijd aan de volgende redenen, die ook vaak gebruikt worden door anderen:
- wanneer je iets instelt wat vaak hetzelfde is, gewoon echt de configuratie, gebruik je arrays
- anders gebruik je gewoon setters
- geef iets mee aan de constructor wanneer het nodig is voor de klasse om te werken. Een newsletter kan bijv. best werken zonder mailer, want je kan de nieuwsbrief ook als concept opslaan. Echter een router kan niet zonder routes en de request uri, die voeg je dus mee aan de constructor.

Tevens komen er in php 5.6 waarschijnlijk named arguments. Welke het probleem hierboven met het weglaten van de plaats een stuk makkelijker maakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
new User('name' => 'Piet', 'age' => 35);
?>


Tevens zou ik nooit false durven gebruiken als ik geen waarde wil opgeven voor een string. Liever null, of nog beter een lege string.
 
Ozzie PHP

Ozzie PHP

08/09/2013 14:23:15
Quote Anchor link
Thanks Wouter. Voor wanneer staat versie 5.6 op de agenda?

"Tevens zou ik nooit false durven gebruiken als ik geen waarde wil opgeven voor een string. Liever null, of nog beter een lege string."

Klopt. Was ook maar even snel een voorbeeldje. Ik zou in dit geval voor null gaan.
 
Wouter J

Wouter J

08/09/2013 14:38:04
Quote Anchor link
maart/juni/juli 2014
 

Pagina: 1 2 3 volgende »



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.