route class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

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 »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op

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 »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Senior .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

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 »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

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

27/04/2024 23:49:58
 
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.