MVC Routing

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

PHP developer (Laravel, Docker, Gitlab-CI)

Functie Het IT-team bestaat momenteel uit 4 ontwikkelaars. Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. Een groot deel van de systemen is gebouwd met behulp van het Laravel framework en PHP (minimaal 7.2), Docker voor lokaab gebruik en Gitlab-CI voor het deployen

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

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 »

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 »

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 »

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 »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Team Lead Java Developer

Functie Wat ga je doen als Java developer? Als Team Lead Java Developer draag een grote verantwoordelijk je stuurt ontwikkelaars aan en staat dagelijks in contact met jou ICT Manager. De team Bestaat uit front-end en backend systemen. Je ben in staat op hoog niveau de technische vak te bepalen en ook te bewaren. Je dag zie er als volgt uit, ontwikkelen van nieuwe en bestaande applicaties, het uitvoeren van processen en analyses en het beschrijven van functioneel ontwerpen. Ook zal samen met jouw Tester applicaties gaan testen door middel van peer reviews en het leveren van support aan gebruikers

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

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 »

Pagina: « vorige 1 2

Roy B

Roy B

24/11/2014 13:07:02
Quote Anchor link
Dus als ik het goed begrepen heb..

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
<?php
// controllers/newsitem.php
class NewsitemController extends Controller
{
    private _model;

    public function __construct()
    {

        $this->_model = new NewsitemModel();
    }


    public function getLatest()
    {

        return $this->_model->getLatest();
    }
}


// models/newsitem.php
class NewsitemModel extends Model
{
    public function getLatest()
    {

        $select = "SELECT * FROM newsitems ORDER BY id DESC";
        $query = $this->_database->query($select);

        if($query->rowCount() > 0)
        {

            return $query->fetchAll();
        }
    }
}


$controller = new NewsitemController();
$newsitems = $controller->getLatest();
?>
Gewijzigd op 24/11/2014 13:14:13 door Roy B
 
PHP hulp

PHP hulp

23/11/2024 13:58:23
 
Ozzie PHP

Ozzie PHP

24/11/2014 13:13:34
Quote Anchor link
@Roy:

Ja, lijkt me prima.

Je moet alleen nog wel het resultaat van getLatest() ergens in stoppen ...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$recent_news
= $controller->getLatest();
?>
 
Roy B

Roy B

24/11/2014 13:16:10
Quote Anchor link
@Ozzie,
Klopt, had ik al gezien. Heb mijn post al aangepast :)

Hoe zit dit dan verder met de route?
Stel mijn url is /nieuws, dan wil ik een overzicht tonen van alle nieuwsitems. Stel mijn url is /nieuws/dit-is-mijn-eerste-nieuwsitem, dan wil ik het specifieke nieuwsitem tonen. En zo verder...
 
Ward van der Put
Moderator

Ward van der Put

24/11/2014 13:32:20
Quote Anchor link
Ja, precies: je kunt nu honderden of duizenden applicaties tegelijk verbouwen door alleen die ene controller te herschrijven.

Als je meerdere nieuwsitems hebt, wat niet onwaarschijnlijk klinkt, kun je er beter nog een controller naast zetten. De methode getLatest() heeft binnen één nieuwsitem zelf immers geen betekenis. Er is geen laatste nieuwsitem binnen één nieuwsitem.

Wel kunnen ze eventueel hetzelfde model delen: dáárin dient de methode getLatest() een duidelijk doel, net zoals bijvoorbeeld getPrevious() en getNext() om te bladeren.

Google anders maar eens op het data mapper pattern en het factory method pattern. Een factory is een oplossing voor wat je nu met getLatest() doet: je wilt niet zomaar een nieuwsitem, maar specifiek het laatste nieuwsitem. Dat is in alle opzichten identiek aan andere nieuwsitems, met één verschil: het is het item met de laatste publicatiedatum en -tijd.
 
Ozzie PHP

Ozzie PHP

24/11/2014 13:33:18
Quote Anchor link
>> Hoe zit dit dan verder met de route?

Dat is weer een heel andere discussie. Ik heb je alleen even geholpen met het model-verhaal ;)

Een route koppel je aan een action (actie). Uit de route moet je afleiden om welke actie het gaat. Dus /nieuws koppel je bijvoorbeeld aan een showNewsAction() en /nieuws/item/1/mijn-eerste-nieuws-item koppel je aan showItemAction waarbij in dit geval 1 het ID van het item in de database is.

Toevoeging op 24/11/2014 13:38:24:

@Ward:

>> Er is geen laatste nieuwsitem binnen één nieuwsitem.

Ik snap wat je bedoelt. Wellicht is het dan handiger om de controller niet NewsItemController te noemen, maar simpelweg NewsController, met als actions bijvoorbeeld show($amount), showItem($id) en showRecent($amount).

Valt me nog even op nu dat Roy dit doet:

$newsitems = $controller->getLatest();

Eigenlijk is een MVC patroon bedoeld om direct dingen te tonen (de V staat voor View). In dat geval zou het dus logischer zijn om te kiezen voor:

$controller->showRecent();

De controller zorgt dan ook dat de recente items daadwerkelijk worden getoond in de browser.
Gewijzigd op 24/11/2014 13:40:54 door Ozzie PHP
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/11/2014 14:42:10
Quote Anchor link
Routes:

stel je hebt

'http://mydomain.com/news/' // alle nieuwsitems moeten getoond worden (in een lijst met titels)
'http://mydomain.com/news/latest' // de laatste 20 nieuwsitems moeten getoond worden (in een lijst met titels)
'http://mydomain.com/news/show/12' // laat één nieuwsbericht zien met id=12


en je hebt een NewsController:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class NewsController
{
    public function indexAction() {}
    public function latestAction() {}
    public function showAction($id) {}
}

?>


Dan moet de Dispatcher (Of hoe je dat geval ook wilt noemen) er voor zorgen dat bij de eerste route in mijn lijstje de indexAction methode wordt aangeroepen en dat bij de tweede route in mijn lijstje de latestAction methode wordt aangeroepen. Bij de derde wordt het extra interessant want daar zit een variabele waarde in.
Die 12 kan immers net zo goed een ander getal zijn. Leuke uitdaging :p

Je zult dus ergens een lijst, array, xml of whatever moeten opslaan waarin aangegeven staat welke controller aangeroepen moet worden bij welke route er opgevraagd wordt.

Als je het slim wilt doen dan zorg je ook dat je heel makkelijk linkjes (denk aan <a href="..." >blabla</a> kunt maken in je view.

DUS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$routes
= array(
    'latest_news' => new $route('news/latest'),
    // en nog véél meer routes ...
);
?>

en in de view:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="{{ path('latest_news') }}">Laatste nieuws</a>


Dit is dan even hoe het in Symfony & Twig gedaan wordt. path maakt dan van de route-label een echte route als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/news/latest
Gewijzigd op 24/11/2014 15:01:11 door Frank Nietbelangrijk
 
Roy B

Roy B

24/11/2014 15:31:14
Quote Anchor link
@Ozzie,
Ozzie PHP op 24/11/2014 13:33:18:
Valt me nog even op nu dat Roy dit doet:

$newsitems = $controller->getLatest();

Eigenlijk is een MVC patroon bedoeld om direct dingen te tonen (de V staat voor View). In dat geval zou het dus logischer zijn om te kiezen voor:

$controller->showRecent();

De controller zorgt dan ook dat de recente items daadwerkelijk worden getoond in de browser.

Hoe zou ik de view dan kunnen koppelen?

@Frank,
Frank Nietbelangrijk op 24/11/2014 14:42:10:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$routes
= array(
    'latest_news' => new $route('news/latest'),
    // en nog véél meer routes ...
);
?>


en in de view:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="{{ path('latest_news') }}">Laatste nieuws</a>


Dit is dan even hoe het in Symfony & Twig gedaan wordt. path maakt dan van de route-label een echte route als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/news/latest

Dus stel ik zet mijn routes in een array...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$routes
= array(
    "nieuws" => new $route("nieuws'),
    ...
);

?>

Hoe weet de route dan welke controller moet worden aangeroepen?
En welke methode vervolgens moet worden aangeroepen?
Gewijzigd op 24/11/2014 15:32:30 door Roy B
 
Ozzie PHP

Ozzie PHP

24/11/2014 15:43:35
Quote Anchor link
>> Hoe zou ik de view dan kunnen koppelen?

Dat moet je dus gaan inbouwen. Vanuit de betreffende action ga je dan een view genereren. In je showNewsItemAction() komt dus aan het eind iets te staan als $this->render('newsitem.phtml').
 
Roy B

Roy B

24/11/2014 16:01:21
Quote Anchor link
Ozzie PHP op 24/11/2014 15:43:35:
Dat moet je dus gaan inbouwen. Vanuit de betreffende action ga je dan een view genereren. In je showNewsItemAction() komt dus aan het eind iets te staan als $this->render('newsitem.phtml').

Dan krijg ik dus zoiets?
En wat gebeurt er dan in render()?
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
<?php
class Controller
{
    public function render($file)
    {

    }
}


class NewsitemController extends Controller
{
    private _model;

    public function __construct()
    {

        $this->_model = new NewsitemModel();
    }


    public function getLatest()
    {

        $newsitems = $this->_model->getLatest();

        $this->render("nieuws.html");
    }
}


// models/newsitem.php
class NewsitemModel extends Model
{
    public function getLatest()
    {

        $select = "SELECT * FROM newsitems ORDER BY id DESC";
        $query = $this->_database->query($select);

        if($query->rowCount() > 0)
        {

            return $query->fetchAll();
        }
    }
}


$controller = new NewsitemController();
$controller->getLatest();
?>
Gewijzigd op 24/11/2014 16:02:26 door Roy B
 
Ward van der Put
Moderator

Ward van der Put

24/11/2014 16:04:25
Quote Anchor link
>> En wat gebeurt er dan in render()?

Daarin roept de controller de view aan.
Die methode wordt ook vaak index() genoemd, omdat deze zich gedraagt als een index.html of index.php.
 
Ozzie PHP

Ozzie PHP

24/11/2014 16:08:04
Quote Anchor link
>> En wat gebeurt er dan in render()?

Die include de view die jij meegeeft, waarschijnlijk met daarbij ook nog een array, waarvan je de data in de view kunt gebruiken. De view laten we dan meestal eindigen op de extensie .phtml (een combinatie van html en PHP).
 
Roy B

Roy B

24/11/2014 16:11:17
Quote Anchor link
Kun je eens een voorbeeldje geven hoe dat precies werkt dan?
 
Ozzie PHP

Ozzie PHP

24/11/2014 16:20:47
Quote Anchor link
Zoiets als dit:

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
<?php

// in je news controller
    public function getLatest()
    {

        $newsitems = $this->_model->getLatest();

        $this->render("nieuws.phtml", array('newsitems' => $newsitems, 'title' => 'nieuws'));
    }


// in je controller
public function render($view, $data) {
    extract($data);
    include 'path/to/views/' . $view;
}


// in je view

echo $title;

print_r($newsitems);

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/11/2014 17:00:50
Quote Anchor link
Goed even een starter voor je om op gang te komen.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php

class Route
{
    private $path;
    private $controller;
    private $action;
    
    function
__construct($path, $controller, $action = 'index') {
        $this->path = $path;
        $this->controller = $controller;
        $this->action = $action;
    }
    
    function
getPath()
    {

        return $this->path;
    }
    
    function
getController()
    {

        return $this->$controller;
    }
    
    function
getAction()
    {

        return $this->$action;
    }
}


class Dispatcher
{
    private $routes;
    
    function
__construct($routes) {
        $this->routes = $routes;
    }

    
    public function matchRoute($path)
    {

        $pathParts = explode('/', $path);
        
        foreach($this->routes as $route)
        {

            if($this->compareRouteParts(explode('/', $route->getPath()), $pathParts))
                return $route;
        }

        
        return NULL;
    }

    
    private function compareRouteParts($routeParts, $pathParts)
    {

        // als de twee arrays ongelijk zijn van lengte dan zijn de routes sowiezo niet gelijk
        if(count($routeParts) != count($pathParts))
            return FALSE;
        
        // loop dan nu door alle elementen in de array's
        for($i = 0 ; $i < count($routeParts) ; $i++)
        {

            // variabelen zijn altijd geldig
            if($routeParts[$i][0] == ':')
                continue;
            
            // indien dit deel geen variabele is dan moeten de elementen dus gelijk zijn
            if($pathParts[$i] != $routeParts[$i])
                return FALSE;
        }

        
        return TRUE;
    }
}


$routes = array(
    'news' => new Route('news', 'News'),
    'news_latest' => new Route('news/latest', 'News', 'latest'),
    'news_show' => new Route('news/show/:id', 'News', 'show'),
);


$dispatcher = new Dispatcher($routes);

$route = $dispatcher->matchRoute('news');
if($route) {
    var_dump($route); echo '<br>';
}
else
    echo 'ongeldige route<br>';

$route = $dispatcher->matchRoute('news/latest');
if($route) {
    var_dump($route); echo '<br>';
}
else
    echo 'ongeldige route<br>';

$route = $dispatcher->matchRoute('news/show/12');
if($route) {
    var_dump($route); echo '<br>';
}
else
    echo 'ongeldige route<br>';

$route = $dispatcher->matchRoute('news/pannekoek');
if($route) {
    var_dump($route); echo '<br>';
}
else
    echo 'ongeldige route<br>';

?>
Gewijzigd op 24/11/2014 18:18:34 door Frank Nietbelangrijk
 
Roy B

Roy B

20/01/2015 16:09:29
Quote Anchor link
Oke, nog even terugkomend op deze discussie...
Het is even geleden, maar ik had niet eerder tijd ervoor.

Ik heb nu het volgende:
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
<?php
// routes.php
$routes = array();
$routes[] = array("route" => "nieuws", "controller" => "Newsitem", "action" => "index");
$routes[] = array("route" => "nieuws/{titel}", "controller" => "Newsitem", "action" => "show");

// index.php
include "includes/config.php";
include "includes/routes.php";

$request = new Request();

// Save our request
$registry = new Registry();
$registry->set("request", $request);

// En hoe dan verder?
?>


Stel mijn route is /nieuws/dit-is-een-titel.
Dan moet er dus gekeken worden welke controller hier aan gekoppeld moet worden en welke action uitgevoerd moet worden. In dit geval zou dat de show action zijn van de NewsitemController. Maar hoe bepaal ik nu welke controller moet worden aangeroepen bij welke URL?
Gewijzigd op 20/01/2015 16:11:12 door Roy B
 

Pagina: « vorige 1 2



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.