🏠 Accueil

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 â˜ș