Sortie de MINZ 1.0 - framework PHP
(lecture : 4 minutes)
Et bien voilĂ , aprĂšs quasiment un an de dĂ©veloppement plus quâirrĂ©gulier, jâai le plaisir dâannoncer la version 1.0 de mon framework PHP : MINZ Is Not Zend.
Pour la petite histoire
Jâai commencĂ© Ă dĂ©velopper ce framework Ă la base dans un but totalement personnel. Ayant pratiquĂ© un petit peu Zend durant ma derniĂšre annĂ©e de DUT informatique, sa lourdeur mâa vite agacĂ©. Puis voulant voir comment dĂ©velopper un framework, je suis parti des idĂ©es de Zend pour me bĂątir ma propre architecture et manipuler un peu plus de PHP.
Ainsi MINZ a Ă©tĂ© Ă la base de mon site personnel depuis tout ce temps, me permettant de tester Ă plus ou moins grande Ă©chelle les fonctionnalitĂ©s dont jâavais besoin.
La présentation tirée du (court) wiki
MINZ est un framework PHP, câest-Ă -dire quâil propose une architecture particuliĂšre pour lâĂ©criture dâapplications PHP. On peut le voir comme un squelette, et lâapplication comme les muscles, cerveaux, peau, etc. Ce framework repose lui-mĂȘme sur la modĂ©lisation MVC (pour Model View Controller). Le modĂšle MVC permet de sĂ©parer logiquement les donnĂ©es (un utilisateur avec un nom, un prĂ©nom, un mot de passe par exemple), leur reprĂ©sentation (la façon dont on va les afficher) et leur traitement. Cela permet dâavoir une application facile Ă maintenir.
MINZ est fortement inspirĂ© de Zend Framework, qui est un autre framework PHP. Bien quâinspirĂ©, il sâen Ă©loigne par bien des aspects, dâoĂč son nom en clin dâoeil : MINZ Is Not Zend. Il se veut notamment bien plus lĂ©ger et plus facile Ă mettre en place afin de faciliter le dĂ©ploiement dâapplications MINZ. De par ce soucis de lĂ©gĂšretĂ©, il existe quelques contraintes qui le rendent moins puissant, ce qui nâest pas vraiment un soucis pour des applications simples (un blog, un site ou une galerie photos par exemple). Si vous connaissez dĂ©jĂ Zend Framework, il est certain que vous y trouverez de nombreuses similitudes, notamment au niveau de lâarchitecture.
Le code de MINZ est sous licence AGPL 3.
Les fonctionnalités en vrac
- Routage des urls avec url rewriting gĂ©rĂ© par PHP. Cela permet de simplifier le processus de réécriture dâurls sans se prendre la tĂȘte avec Apache. En contrepartie, le systĂšme est moins puissant, mĂȘme si jâai pensĂ© Ă quelques amĂ©liorations, qui ne verront sans doute jamais le jour...
- En complĂ©ment du routage, jâai mis en place un systĂšme dâĂ©criture dâurls. Ainsi, on a la possibilitĂ© dâactiver ou de dĂ©sactiver lâurl rewriting Ă la volĂ©e, sans casser les liens internes au site.
- Lâhistorisation du parcours des visiteurs permet de garder un fil de leur visite, permettant de mettre en place facilement des liens de retour aux pages prĂ©cĂ©dentes. Je ne suis pas bien sĂ»r de conseiller cette fonctionnalitĂ© puisquâelle est sujette Ă pas mal de difficultĂ©s de mise en place.
- La mise en cache des pages du site basé sur MINZ est gérée automatiquement par le framework sans avoir rien à faire.
- Lâinternationalisation des applications a aussi Ă©tĂ© prise en compte Ă travers une classe dĂ©diĂ©e permettant de mettre facilement en place diffĂ©rentes langues pour le site.
- Un systĂšme a Ă©tĂ© dĂ©veloppĂ© pour faciliter la pagination de listes (dâarticles de blog par exemple)
- Et enfin, une classe pour logguer les erreurs, warnings et autres actions nĂ©cessitant dâĂȘtre logguĂ©es ;)
Et la suite ?
Aujourdâhui jâai sorti la version 1.0 aprĂšs plus dâun mois en version alpha... Jâavoue que jâai pris mon temps : jâattendais dâavoir terminĂ© la documentation (sous licence CC BY-SA), et ça ne me motivait plus du tout. Alors la suite, je ne pense pas faire de gros changements au framework, seulement des mises Ă jour de bugs. MĂȘme si une roadmap est en place sur la page GitHub dĂ©diĂ©e, ce qui y est indiquĂ© ne verra sans doute pas le jour. Sauf si quelquâun a envie de se lancer lĂ -dedans ;)
Ă vrai dire je commence Ă en avoir marre de dĂ©velopper uniquement des applications web, et jâai envie de passer Ă autre chose. Jâai dâautres projets qui cogitent, et jâai envie de me lancer lĂ -dedans.
Au final et en guise de conclusion
Je suis vraiment content dâen ĂȘtre arrivĂ© lĂ avec mon "semblant de framework" comme je lâappelais il y a un an. Au dĂ©part câĂ©tait totalement un projet pour moi-mĂȘme, pour voir ce dont jâĂ©tais capable et en Ă©tant persuadĂ© que jâarrĂȘrais 1 mois plus tard. Câest mon premier vrai gros projet qui peut avoir une rĂ©elle utilitĂ©. Jâai appris nettement plus de choses en dĂ©veloppant mon framework que ce que tous les sites et profs ont pu essayer de mâapprendre en PHP (bien quâils mâaient appris beaucoup de choses !). Et puis ça fait toujours du bien dâarriver Ă mener un projet Ă son terme, surtout aprĂšs un an de dĂ©veloppement âș