Minz 0.3

Quelques jours seulement après la version 0.2, je sors cette version 0.3.

Quelles nouveautés alors ? Et bien deux gros morceaux que je voulais absolument implémenter et qui me limitaient un peu dans mes divers développement.

Tout d’abord, la réécriture d’url à travers un module de routes. Comment ça marche ? Et bien regardez l’url dans la barre de votre navigateur qui doit être ici du genre http://marienfressinaud.fr/?c=blog, ce qui signifie que le controller de l’application se nomme blog. Avec cette version, j’aurai la possibilité de transformer cette url en http://marienfressinaud.fr/blog. Ce n’est pas grand chose, et c’est facilement faisable avec un fichier .htaccess, mais j’avais la volonté de le faire directement à travers le framework. Le morceau de code qui fera ça est on ne peut plus simple :

return array(
    array(
        'route'       => '/blog',
        'controller'  => 'blog',
        'action'      => 'index'
    )
);

avec possibilité de rajouter autant de routes que l’on veut évidemment ;) Ainsi, lorsque l’on regarde un article en particulier, par exemple à l’url http://marienfressinaud.fr/?c=blog&a=voir&id=62, on peut rajouter un peu de code :

return array(
    array(
        'route'       => '/blog',
        'controller'  => 'blog',
        'action'      => 'index'
    ),
    array(
        'route'       => '/blog/voir',
        'controller'  => 'blog',
        'action'      => 'voir'
    )
);

et l'url http://marienfressinaud.fr/blog/voir?id=62 emmènera au même article. On voit d'ailleurs ici la limitation avec les urls un peu dynamiques, je ne gère pas encore les paramètres supplémentaires comme ici id, mais j'y pense ;) Bon, je n'utilise pas encore cette nouvelle version sur ce site parce que ça demandera un peu plus de travail pour l'intégrer et que ma connexion internet ne me le permet pas :p

Deuxième fonctionnalité, aussi importante à mes yeux, l'ajout d'un bootstrap d'application. À quoi il sert celui-là ? En fait ce bootstrap pourra être modifié directement par le développeur pour automatiser certaines tâches. Par exemple, dans chacun de mes controllers, j'ai les lignes (entre autres)

$this->view->prependStyle(DOMAIN.'/themes/default/base.css');
$this->view->prependScript(DOMAIN.'/scripts/jquery.js');
$this->view->user = new User();

ce qui devient très vite rébarbatif. Et bien ce bootstrap me permettra de les charger automatiquement grâce à sa méthode run(). De ce fait, je n’aurai qu’à l’écrire une fois, et tous mes controllers seront impactés donc il y a quand même un certain gain en temps ☺

J’espère que ça intéressera quelqu’un, surtout que d’un point de vue personnel, je trouve mon framework très bien et de plus en plus puissant (oui oui, je suis très objectif ! :D)