Ik heb vandaag eindelijk mijn TestKernel afgemaakt: https://gist.github.com/4013960 Op deze manier heb ik een compleet geïsoleerde kernel gemaakt waardoor ik mijn functional tests kan uitvoeren zonder dat deze beïnvloed wordt door de andere bundles. Nu nog een manier vinden om de routing te isoleren.
Heb een beetje verder gedaan aan het routing systeem voor m'n framework. Iets heel kleins wat ik zonet gemaakt heb is het kiezen tussen een array of gewoon een string voor een request method zodat het iets flexibeler wordt.
<?php
//dit werkt
$routeCollection->add(new Route('/aanmelden', 'login.php', 'GET'));
//maar dit ook
$routeCollection->add(new Route('/aanmelden', 'login.php', array('GET')));
$routeCollection->add(new Route('/aanmelden', 'login.php', array('GET', 'POST')));
?>
Volgende stap: alle route's in een goed bestandsformaat stoppen.
Weet niet of het alleen over 'maken gaat' maar heb vandaag de normalisatie handleiding doorlopen voor databases en daar mee lopen spelen. Helemaal gelukt alleen het querien is nu lastiger geworden.
Ik ben druk bezig met 'mijn eigen versie van ZF2'. Ik probeer het te laten lijken op Symfony, met configuration files; controllers; templates; ect.
Want ik momenteel voor elkaar heb:
- Basis directory structure (nog niet de Bundle directory structure);
- Optie tot 5 soorten configuratie bestanden (yml, xml, php, ini en json);
- Vendor namespaces (bijv. de Wj\AlbumModule ipv de AlbumModule) vooral met de templates was dit een geknoei.
Verder begonnen aan mijn nieuwsbrief, de puntjes op de i aan het zetten voor mijn 'PHP guidelines' artikel en documentatie schrijven voor de Symfony Translation Component.
Vandaag configuratie gemaakt! Alle routes staan nu niet lelijk in de bootstrap maar allemaal in configuratie bestanden. Heb het een beetje a la Zend gemaakt:
<?php
new Bootstrap(new RouteConfig(new Framework\Config\Reader\Yml(WWW_ROOT . 'config/routes.yml')));
?>
Ik heb Yml, Xml, Json en Ini readers gemaakt.
Hier trouwens een leuk trucje om een XML bestand om te zetten naar een array zonder al te veel code: