route class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Developer Front-end

Functie omschrijving Front-end Developer gezocht! Wij zijn op zoek naar een front-end developer voor een organisatie in de regio Veenendaal die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. Je hebt in deze functie een adviserende rol hiervoor moet je beschikken over een grote dosis vakinhoudelijke kennis. Je creëert unieke concepten door samen met collega’s en klanten te overleggen over aangeleverde designs. Hiermee draag jij je steentje bij aan de groeiambities van de klant. Jij wordt het vaste aanspreekpunt voor klanten wanneer het gaat over planningen, hierin is het jouw taak om alle betrokkenen goed

Bekijk vacature »

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 »

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

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 »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

Java Developer

Dit ga je doen Het ontwikkelen van nieuwe software; Het ombouwen van de bestaande software; Zowel back- als front-end software ontwikkelen; Het testen; Het implementeren van de volledig geteste software; Het verzorgen van nazorg en het oplossen van bugs; Het opstellen en bijhouden van procesdocumentatie; Je draagt bij aan het agile/scrum processen van het team. Hier ga je werken Ongetwijfeld heb je een of meerdere producten van deze organisatie in huis. Het proces erachter, daar ben je ongetwijfeld minder bekend mee. Deze opdracht geeft je de kans meer over dit proces te weten te komen en een mooie bijdrage te

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

E-Identity Developer met Projectleider Kwaliteiten

Functieomschrijving Voor de kamer van koophandel zijn we op zoek naar een E-Identity developer met projectleider kwaliteiten. Voor deze opdracht zoekt KVK een Informatieanalist met Technisch Projectleider en ICT developer kwaliteiten, met kennis van E-identity. We zoeken in de breedte en niet specifiek in de diepte qua skillset. Een Junior Projectmanager, een Junior Informatieanalist, een Junior Developer (full stack), een Junior Designer en een Junior ICT architect ineen, met een sterk gevoel van stakeholder management en planning vaardigheden. Door de internationale setting, én de realisatie van ontsluiting van en naar basisregisters toe zijn wij op zoek naar enige ervaring binnen

Bekijk vacature »

Pagina: « vorige 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

08/09/2013 14:58:38
Quote Anchor link
Oke... duurt altijd zo lang :)
 
PHP hulp

PHP hulp

27/05/2026 01:36:50
 
Tom Swinkels

Tom Swinkels

08/09/2013 22:09:27
Quote Anchor link
Ondertussen heb ik alvast wat wijzigingen aangebracht in mijn router.

Route.class.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 08-09-2013
 */

class Route
{
    private $_pattern;
    private $_data;

    public function __construct( $pattern, $data )
    {

        $this->_pattern = $pattern;
        $this->_data = $data;
    }


    public function match( $query )
    {

        // ADD EXPESSION FOR MATCHING.
        $route = '#^' . $query . '$#';
        
        // CHECK FOR NUMERIC ROUTE
        $route = preg_replace( '/\<\#(.*?)\>/', '(?P<\1>[0-9]+)', $route );

        // CHECK FOR ALPHA NUMERIC ROUTE
        $route = preg_replace( '/\<\:(.*?)\>/', '(?P<\1>[A-Za-z0-9\-\_]+)', $route );

        if( preg_match( $route, $query, $matches ) )
        {

            return $this->_data;
        }

        return false;
    }
}

?>


Router.class.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 08-09-2013
 */

class Router
{
    private $_routes;

    public function __construct()
    {

        $this->_routes = array();
    }


    public function setRoute( Route $route )
    {

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


    public function getRoute( $query )
    {

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

            foreach( $routes as $route )
            {

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

                    $controllerName = $match['controller'] . 'Controller';
                    
                    $controller = new $controllerName();
                    $controller->$match['action']();
                    return $controller;
                }
            }
        }

        return false;
    }
}

?>


Dit stukje zou dan uiteindelijk in de FrontController moeten komen??
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$router
= new Router();
$router->setRoute( new Route( '/artikel/bewerk/<#id>/', array( 'controller' => 'Article', 'module' => 'edit', 'action' => 'index' ) ) );
$controller = $router->getRoute( $request->server( 'REDIRECT_URL' ) );
?>
Gewijzigd op 08/09/2013 22:30:41 door Tom Swinkels
 
Wouter J

Wouter J

08/09/2013 22:18:37
Quote Anchor link
De routes toevoegen wordt natuurlijk in een configuratie bestand gezet. Andere punten:
- de router heeft niks van doen met het koppelen van een route aan een controller, dit moet de front controller of een controller resolver doen.
- regel 22 van de router is nodeloos geheugen verspilling
- gebruik liever count om te kijken of er routes zijn
- een method addRoute beschrijft de functie beter
- gebruik in het geval van ids natuurlijk wel <#id>
- geen routes om in te zoeken zou ik opvatten als een fout
 
Tom Swinkels

Tom Swinkels

08/09/2013 22:30:08
Quote Anchor link
Ik heb de Route.class.php nog wat aangepast.

Bedankt voor je antwoord, hier kan ik wat mee!

Antwoorden op jou vragen:

- Ik return enkel de data, en in de FrontController roep ik de nieuwe controllers aan bedoel je?
- Regel 22?
- Waarom zou je dat met count kijken?
- Dit had ik nog niet aangepast.
- Wat bedoel je met geen routes om in te zoeken?

Hoe zou jij een default route afhandelen / toevoegen?

Verder geeft het bovenstaande stuk matches op alles.
 
Wouter J

Wouter J

08/09/2013 22:40:48
Quote Anchor link
- Nee, je retourneert gewoon de hele route en laat de front controller lekker uitzoeken wat hij daarna met die route wil doen, dat gaat de router niks aan.
- Ja, regel 22:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
19
20
21
22
23
<?php
    public function getRoute( $query )
    {

        $routes = $this->_routes;
?>

- Omdat je een array hebt en geen boolean value. Gewoon een kwestie van netjes scripten. Zoals ik altijd zeg "PHP is awesome because it's noobproof, a PHP developer is awesome if he doesn't use those noobproof-features".
- Nou, stel $this->_routes is leeg, dan zou ik een exceptiontje gooien

En default routes, wat bedoel je daarmee?
 
Tom Swinkels

Tom Swinkels

08/09/2013 22:48:16
Quote Anchor link
- Ok, maar wie roept de router aan? Aangezien de routes uit de config komen?
- Welke array bedoel je? Het is toch logies om alle routes in een array te gooien?

Ik bedoel wanneer er geen route is opgegeven, bijvoorbeeld www.site.nl hoe bepaal ik welke route er dan standaard wordt uitgevoerd?
 
Wouter J

Wouter J

08/09/2013 23:02:51
Quote Anchor link
- De frontcontroller roept de router aan. Routes uit config kun je erg simpel doen met:
Code (routes.php) (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$router
->addRoute(new Route(...));
// ...
?>

Code (frontcontroller.php) (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
<?php
class FrontController
{
    public function terminate(...)
    {

        // ...

        $router = $this->getRouter();
        $route = $router->match(...);

        // ... do something nice with the matched route
    }

    protected function getRouter()
    {

        $router = new Router();
        require_once 'path/to/config/routes.php'; // laad routes

        return $router;
    }
}

?>


- Ja, maar deze array kan ook leeg zijn. Daar heb je nu een ifje voor gebruikt, zodra die leeg is zou ik dus een error gooien.

De route site.nl/ is de '/' route.
 
Tom Swinkels

Tom Swinkels

09/09/2013 00:07:54
Quote Anchor link
Ik ga nu slapen na een indrukwekkende reportage bij SBS6 te hebben gezien.

Morgen probeer ik het een en ander uit te werken.

Een quote uit je eerste bericht in dit topic "- Je mist default values, ik kan niet zeggen dat /:slug standaard de waarde 'home' krijgt.".

Toevoeging op 09/09/2013 10:10:37:

Ik heb ondertussen wat wijzigen doorgevoerd.

FrontController
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
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 09-09-2013
 */

class FrontController
{
    public function __construct( $requestUri )
    {

        $router = $this->getRouter();
        
        $route = $router->getRoute( $requestUri );
        if( $route )
        {

            $data = $route->getData();
            
            $controllerName = $data['controller'] . 'Controller';

            $controller = new $controllerName();
            $controller->$data['action']();
            return $controller;
        }
    }

    
    protected function getRouter()
    {

        $router = new Router();
        
        require_once('../include/routes.php'); // laad routes

        return $router;
    }
}

?>


Route
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
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 08-09-2013
 */

class Route
{
    private $_pattern;
    private $_data;

    public function __construct( $pattern, $data )
    {

        $this->_pattern = $pattern;
        $this->_data = $data;
    }

    
    public function getData()
    {

        return $this->_data;
    }


    public function match( $query )
    {

        // ADD EXPESSION FOR MATCHING.
        $route = '#^' . $query . '$#';
        
        // CHECK FOR NUMERIC ROUTE
        $route = preg_replace( '/\<\#(.*?)\>/', '(?P<\1>[0-9]+)', $route );

        // CHECK FOR ALPHA NUMERIC ROUTE
        $route = preg_replace( '/\<\:(.*?)\>/', '(?P<\1>[A-Za-z0-9\-\_]+)', $route );

        if( preg_match( $route, $query, $matches ) )
        {

            return $route;
        }

        return false;
    }
}

?>


Router
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
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 08-09-2013
 */

class Router
{
    private $_routes;

    public function __construct()
    {

        $this->_routes = array();
    }


    public function setRoute( Route $route )
    {

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


    public function getRoute( $query )
    {

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

            foreach( $routes as $route )
            {

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

                    return $route;
                }
            }
        }

        return false;
    }
}

?>
Gewijzigd op 09/09/2013 10:11:28 door Tom Swinkels
 
Dos Moonen

Dos Moonen

09/09/2013 11:09:16
Quote Anchor link
Returnen in een constructor doet niets. Die instantie van de juiste controller zul je moeten opslaan in de FrontController class.
 
NOLot -

NOLot -

09/09/2013 12:55:52
Quote Anchor link
Zelf gebruik ik een aparte compiler voor het maken van de reguliere expressie en een matcher die de goede route zoekt bij de url

Naar mijn mening is zo'n route class die je als voorbeeld stelt genoeg voor kleine applicaties. Echter als je zoals Symfony ook vette dingen wilt doen als url's genereren per route bijvoorbeeld, dan moet je wat extra code toevoegen
 
Tom Swinkels

Tom Swinkels

09/09/2013 13:50:34
Quote Anchor link
@Dos: Wat bedoel je precies?

@NOLot: Ik wacht even op wat een reactie van Wouter.

@Wouter: Wat ik eigenlijk bedoel is wanneer er geen match gevonden is, wil ik dat hij bijvoorbeeld een 404 pagina krijgt te zien. Dit zou dan een default route zijn?
 
Kris Peeters

Kris Peeters

09/09/2013 13:59:32
Quote Anchor link
Een constructor heeft als taak een object aan te maken. Daar kan je ook de $this eigenschappen een initiële waarde geven.
Een constructor heeft niet als taak dingen te returnen.

Zorg dus dat je nooooooit in een constructor iets returnt.


Het gaat om lijn 21 van FrontController
------
Edit:
Het hele concept van FrontController moet dus anders.
Gewijzigd op 09/09/2013 14:03:00 door Kris Peeters
 
Wouter J

Wouter J

09/09/2013 16:38:31
Quote Anchor link
@Tom, en dat is dus niet een default route. Zodra de router geen match vindt retourneert hij false of gooit hij een exception (ik heb voorkeur voor dat laatste). Wanneer dit zo is roept de front controller de 404 controller aan.
 
Tom Swinkels

Tom Swinkels

09/09/2013 16:52:49
Quote Anchor link
Bedoel je dan zo iets?

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
<?php
/**
 * @author Tom Swinkels
 * @version v1.0 last edit on 09-09-2013
 */

class FrontController
{  
    public function execute( $requestUri )
    {

        $router = $this->getRouter();
        
        $route = $router->getRoute( $requestUri );
        if( $route )
        {

            $data = $route->getData();
            
            $controllerName = $data['controller'] . 'Controller';

            $controller = new $controllerName();
            $controller->$data['action']();
            return true;
        }

        else
        {
            //404 CONTROLLER??
        }
    }

    
    protected function getRouter()
    {

        $router = new Router();
        
        require_once( dirname(__FILE__) . '/../include/routes.inc.php' ); // laad routes

        return $router;
    }
}

?>


Wouter wat vindt jij er van om alles nog een op te splitsen naar een routerCompiler en routerMatcher?
 
Kris Peeters

Kris Peeters

09/09/2013 16:55:29
Quote Anchor link
oops, iets te vlug gereageerd
Gewijzigd op 09/09/2013 16:56:17 door Kris Peeters
 
Wouter J

Wouter J

09/09/2013 17:44:08
Quote Anchor link
Ja, dat bedoel ik. Behalve dat de FrontController gewoon het hele request moet krijgen en niet alleen de URI. Want hoe kun je van buiten nou weten dat hij de URI nodig heeft? Je weet alleen dat hij informatie uit de Request nodig heeft.

Het gebruiken van een Compiler lijkt me niet nodig, het gebruiken van een UrlMatcher oid lijkt me wel een tof plan.
 
Tom Swinkels

Tom Swinkels

09/09/2013 23:01:11
Quote Anchor link
Dat gedeelte heb ik aangepast.

UrlMatcher kan altijd nog.

Er gaan op dit moment nog iets mis met de match hij matcht namelijk alles.

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
<?
    public function match( $query )
    {

        // ADD EXPESSION FOR MATCHING.
        $route = '#^' . $query . '$#';
        
        // CHECK FOR NUMERIC ROUTE
        $route = preg_replace( '/\<\#(.*?)\>/', '(?P<\1>[0-9]+)', $route );

        // CHECK FOR ALPHA NUMERIC ROUTE
        $route = preg_replace( '/\<\:(.*?)\>/', '(?P<\1>[A-Za-z0-9\-\_]+)', $route );

        if( preg_match( $route, $query, $matches ) )
        {

            return $route;
        }

        return false;
    }

?>


Toevoeging op 09/09/2013 23:45:31:

Probleem is opgelost.

Ik match de query met de query, maar ik moet natuurlijk de query matchen met de route.

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
<?
    public function match( $query )
    {

        // ADD EXPESSION FOR MATCHING.
        $route = '#^' . $this->_pattern . '$#';
        
        // CHECK FOR NUMERIC ROUTE
        $route = preg_replace( '/\<\#(.*?)\>/', '(?P<\1>[0-9]+)', $route );

        // CHECK FOR ALPHA NUMERIC ROUTE
        $route = preg_replace( '/\<\:(.*?)\>/', '(?P<\1>[A-Za-z0-9\-\_]+)', $route );

        if( preg_match( $route, $query, $matches ) )
        {

            return $route;
        }

        return false;
    }

?>


Toevoeging op 10/09/2013 00:11:10:

Wat ik nu nog mis is een Registry zoals hier http://phpro.org/tutorials/Model-View-Controller-MVC.html wordt beschreven.

Zouden jullie dit op de zelfde manier doen? Of is het een slecht voorbeeld?
 
NOLot -

NOLot -

10/09/2013 11:27:15
Quote Anchor link
Kan ja, maar ik ben zelf niet een groot fan van singletons (db::getInstance()). Google anders eens op dependency injection container. Daar is al veel over geschreven op het gebied van php. http://pimple.sensiolabs.org/ vind ik persoonlijk een erg sterk voorbeeld. Goede uitleg staat ook hier http://fabien.potencier.org/article/11/what-is-dependency-injection
 
Tom Swinkels

Tom Swinkels

10/09/2013 12:44:40
Quote Anchor link
Wat stel jij dan voor?

Verder had ik nog een vraagje over wanneer er geen route gevonden is.
Is het logisch om dan in de FrontController te bepalen dat er geen route gevonden is en dan een conytollrt aan te roepen die bijvoorbeeld een 404 error geeft?
De router is toch verantwoordelijk voor alle routes, het lijkt mij dus toch logisch om daarvoor een default route te maken?
 
Tom Swinkels

Tom Swinkels

11/09/2013 17:28:46
Quote Anchor link
-
Gewijzigd op 12/09/2013 19:59:18 door Tom Swinkels
 

Pagina: « vorige 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.