« Présentation de Jelix, framework PHP 5 »
Le 18 novembre 2007
Développement Web
J’utilise en ce moment un framework qui gagnerait sans doute à être plus connu : sans avoir le côté strass & paillettes de Ruby on Rails, (auquel je suis en train de me mettre sérieusement, ça fera sans doute l’objet d’un post à venir) il permet de faire en PHP des choses assez sympathiques dans un cadre MVC, en gardant toujours à l’esprit l’aspect « performance et optimisation », ce qui fait principalement sa force par rapport à des usines comme Cake Php. Son nom ? Jelix.
L’idée est donc ici de laisser le choix au développeur de ce qu’il veut faire du framework : par exemple, il est possible de manipuler des flux Json en passant soit par les fonctions Php de base, ou les fonctions propres au framework, plus efficace. Il est également possible de « compiler » en quelque sorte le php qui sera exécuté par le serveur pour éliminer tout ce qui est inutile au framework, ce qui permet d’en accroître encore les performances. Et ce ne sont que deux exemples simples.
Un framework MVC
Jelix n’utilise pas le même système que Ruby ou Cake Php pour la gestion des modèles : plutôt que de se reposer sur le désormais célèbre Active Record, il préfère le système des DAO XML : le principe est de créer au format XML des modèles, dans lesquels on peut même déclarer des fonctions toujours en XML, le tout étant compilé à l’exécution du framework. Les performance sont alors maximales, mais on perd bien entendu le côté pratique des liaisons implicites créées par Active Record : tout doit être stipulé explicitement dans le fichier XML.
Les vues sont prises en charge par un système « maison » qui ressemble beaucoup dans sa syntaxe à Smarty, les habitués ne seront donc pas perdus ;).
Le contrôleur repose pour sa part sur un jeu de “réponses” qu’il est possible de transmettre au coordinateur, coeur opérationnel de l’application. Ainsi, il est tout à fait possible de recevoir du XML dans le contrôleur, qui sera rendu transparent grâce au coordinateur, et de renvoyer une réponse au format JSon qui sera elle aussi décrite de façon transparente dans le contrôleur lui-même.
Cette abstraction qu’il est possible de faire de la source des données et de celles que l’on renvoie est très intéressante dans la pratique, même si mes explications peuvent sembler un peu obscures ;).
Fonctionnalités intéressantes
Pour parler un peu des fonctionnalités additionnelles, on peut notamment citer les jForms : l’idée est de permettre de créer facilement des formulaires au format XML, de les lier simplement au modèle, les afficher de façon automatisée et d’assurer via Javascript une grande partie de la validation des données. On spécifie simplement le type de donnée requis, le type de champ que l’on souhaite afficher, et Jelix s’occupe de tout : à nous de vérifier les données côté serveur et de créer le cas échéant l’enregistrement dans la base.
Il existe également un mécanisme d’authentification assez puissant disponible sous la forme d’un plugin qu’il est possible d’étendre. On peut très simplement internationaliser le tout à l’aide de fichiers externe liés aux templates ou aux fichiers XML pour générer les formulaires, par exemple. Il est même possible des créer des mapping d’url en fonction de la langue, créer des ACL etc.
Allez ici pour trouver une liste exhaustive des fonctionnalités de Jelix ;) !
Pourquoi Jelix
Pourquoi pourriez-vous être intéressé par Jelix ?
- c’est un projet qui démarre, son auteur (français) est à l’écoute, et c’est toujours quelque chose de sympathique, d’autant que l’application est documentée de façon extensive (tutoriels en français, api complète ...).
- idéal pour les applications qui nécessitent du répondant et une efficacité sans faille.
- il y a de très bonnes idées qui sont développées dans ce framework qui adopte une philosophie qui va à l’encontre de la majorité des frameworks ...
La devise de Ruby on Rails est ’la convention plutôt que la configuration’ ... Mais si vous aimez la configuration justement, Jelix est fait pour vous !
Dandelionmood.com a déménagé !
Vos réactions
- Brice, le 21 novembre 2007
Je t’invites aussi à jeter un oeil sur Copix, le framework dont est inspiré Jelix.
En effet depuis la création de Jelix, Copix a bien évolué avec notamment l’ajout de DAO Automatiques (plus besoin de fichiers XML) et l’implémentation de nouvelles fonctionnalités.
Bonne découverte.
- Pierre Quillery, le 21 novembre 2007
Salut Brice, et merci du lien !
Copix a l’air assez intéressant en effet ... D’autant que c’est clair, paramétrer obligatoirement les DAO à la main en XML est une véritable plaie ...
à +
Pierre
- LeSEB, le 28 novembre 2007
Bonjour,
Je suis débutant et je me suis casser les temps sur tout un tas de framework comme zend, CakePhp, symphony ... et même Copix je le trouvais un peu trop complexe.
Je trouve que Jelix est beaucoup plus abordable pour un devoloppeur débutant et ce qui est formidable c’est que plus l’on s’ameliore avec Jelix plus on se rends compte de la puissance et de la liberter de ce framework.
c’est mon avis perso, bien sur sans vouloir polémiqué ;-) faite comme moi essayer les pour trouver celui qui vous convient le mieux.
@+
- Laurentj, le 29 novembre 2007
Merci Pierre pour cette présentation !
@Brice : les daos automatiques, c’est pratique, mais ça ne fait vraiment pas tout. En particulier, tu ne peux pas décrire de nouvelles méthodes. Quid aussi quand le schema change etc.. Bref, c’est pratique pour les tout petits projets, mais vaut mieux créer le fichier xml pour des besoins plus courants, ce qui évite de recourir à du SQL dans tout les sens. D’autant plus qu’un script en ligne de commande est fourni pour générer un fichier dao à partir d’une table (il te mache le travail), et que le plugin jelix pour Eclipse va bientôt comporter un éditeur "visuel" de fichier de dao.
Enfin, Jelix est un fork de Copix, mais après des mois de developpement (presque deux ans déjà), les deux frameworks n’ont pratiquement plus grand chose en commun.
- Pierre Quillery, le 3 décembre 2007
- @LaurentJ : De toutes façons l’avantage des DAOs, si je me fie à ton article "benchmark", c’est essentiellement leur rapidité non ? (cf. cet article)
- Pitchou, le 9 janvier 2008
- Super !!! La version 1.0 Jelix est disponible.


