MVC Routing

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Technisch Applicatie ontwikkelaar

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! In deze functie werk jij voornamelijk aan: Het onderhouden en ontwikkelen van de IT systemen; Het opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werk je aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkel en implementeren je MS PowerApps en Power BI. Bedrijfsprofiel Je komt terecht bij een familiair

Bekijk vacature »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

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 »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

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

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 »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

Front-end developer (Medior/Senior)

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 »

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

26/12/2024 22:47:40
 
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.