Jelix
Développé par | Liste des contributeurs |
---|---|
Dernière version |
1.6.2 () 1.7.8 () |
Dépôt | download.jelix.org/jelix/nightly/latest-nightly-jelix-1.7.x-dev.tar.gz |
Écrit en | PHP |
Langues | Français, anglais |
Type | Framework |
Licence | Licence publique générale limitée GNU |
Site web | jelix.org |
Jelix est un cadriciel (framework) pour PHP5 open source, MVC, permettant le développement de tout type d'application.
Historique
[modifier | modifier le code]Jelix est un framework pour PHP[1], créé fin 2005 par un Français, Laurent Jouanneau. Le site web du projet ouvrit officiellement ses portes le .
À l'origine, le projet fut un fork du framework Copix (dont Laurent Jouanneau était l'un des principaux développeurs), mais très rapidement le cœur fut totalement réécrit, avec une autre approche MVC, et maintenant, seules quelques portions de Copix subsistent depuis la version 1.0 beta.
Depuis sa création, le framework est utilisé par de nombreux sites web[2], dont l'une des plus grosses plates-formes de blogs françaises[3].
Quelques articles de presse ont été publiés, notamment dans la revue Linux-DVD[4].
Le projet Jelix n'est associé à aucune société particulière. Il est développé par une communauté de développeurs professionnels venant d'horizons divers et pour la plupart francophones.
Fonctionnalités
[modifier | modifier le code]Jelix est basé sur le design pattern MVC et DAO qui permet une séparation logique du code. Il est distribué sous la licence LGPL.
- Un ensemble d'API prenant en charge : accès aux données, moteur de templates, générateurs de contenus, générateur de formulaires, CRUD générique, authentification, gestion de droits, etc.
- Une structure modulaire et une organisation des fichiers rigoureuse.
- un respect du modèle MVC pour un découpage en couche du projet.
Quelques originalités :
- Garantie sur les échanges de données : le framework fait le maximum pour que la réponse attendue par le client (navigateur ou autre) soit toujours dans le format attendu, même s'il y a des erreurs. Exemple : si le client attend une réponse en XMLRPC (à la suite d'une requête en XMLRPC) et qu'une erreur survient, il ne recevra pas une page HTML en guise de message d'erreur.
- Les vues sont encapsulées dans des objets "réponses". Les vues ne sont pas de simples templates. Il y a des objets réponses pour chaque type de réponse : page HTML, redirection, page XUL, fichier XML, fichier binaire, SOAP, XMLRPC, JSONRPC, etc. Chaque type d'objet réponse prend en charge toutes les spécificités du format de la réponse renvoyée et les en-têtes HTTP associés, facilitant le développement des contrôleurs. Et il est possible bien sûr de développer ses propres objets réponses, notamment pour spécifier certaines caractéristiques de toutes les pages web d'un site par exemple (template principal, feuille de styles...).
- Jelix permet de développer des modules. Un module est un ensemble de fichiers concernant un domaine fonctionnel précis (exemple : un module "news" pour afficher et gérer des news). Les modules peuvent fonctionner indépendamment les uns des autres. Il est possible aussi pour le développeur de redéfinir certains fichiers d'un module tiers sans toucher aux fichiers originaux, permettant des mises à jour plus simples.
- Jelix propose un système de formulaire puissant et modifiable dynamiquement, jForms, qui respecte le modèle MVC.
- Un composant, jDao, associé à jDb, la couche d'abstraction de base de données, permet de faire du "mapping" relationnel objet. Il est simple à utiliser, mais n'est cependant pas aussi puissant que d'autres ORM (propel, doctrine, etc.)
- un moteur d'URL permet de déclarer des URL associés à des contrôleurs précis, mais aussi de générer automatiquement les URL en donnant uniquement le nom du contrôleur et ses paramètres. Cela évite d'avoir des URL en dur dans le code et les templates, permettant alors une modification plus souple de l'organisation des URL du site.
- Un contrôleur générique est disponible pour faire du CRUD, c'est-à-dire qu'il comporte toutes les actions pour lister une table, éditer ou supprimer des enregistrements. Il suffit juste de lui indiquer un objet jDao et un fichier jForms. Il est bien sûr hautement paramétrable.
- un installeur complet pour gérer son application de A à Z, allant de l'installation des tables à leur mise à jour en passant par la copie des fichiers nécessaire aux modules.
- un système de wizard pour enchainer l'installation des modules de son choix au sein de sa propre application
- des modules pour réaliser une interface d'administration sont livrés.
- La plupart des composants de Jelix ont un système de "plugins", permettant de modifier ou d'étendre leurs comportements, selon les besoins.
- Possibilité de développer des applications en ligne de commandes basées sur Jelix.
- Des scripts en ligne de commandes permet de créer rapidement une application, générer des fichiers pour l'application, et de faire d'autres opérations utiles pour le développement.
- Les manuels et tutoriels sont disponibles à la fois en français et en anglais.
Jelix possède aussi de nombreuses autres fonctionnalités que l'on retrouve dans d'autres frameworks PHP.
État du projet
[modifier | modifier le code]- La version 1.7.8 est sortie le
- La version 1.7 est sortie le
- La version 1.6 est sortie le
- La version 1.5 est sortie le
- La version 1.4 est sortie en
- La version 1.3 est sortie en
- La version 1.2 est sortie pour noël 2010
- La version 1.1 est sortie en
- La première version stable 1.0 est sortie en
Des versions correctives de ces quatre branches sortent régulièrement.
- Dernière en date pour la branche 1.7 (changelog) sortie le
- Dernière en date pour la branche 1.6 (changelog) sortie le
- Dernière en date pour la branche 1.5 (n'est plus maintenue) : 1.5.8 sortie le
- Dernière en date pour la branche 1.4 (n'est plus maintenue) : 1.4.8 sortie le
- Dernière en date pour la branche 1.3 (n'est plus maintenue) : 1.3.9 sortie le
- Dernière en date pour la branche 1.2 (n'est plus maintenue) : 1.2.13 sortie le
- Dernière en date pour la branche 1.1 (n'est plus maintenue) : 1.1.12 sortie le
- Dernière en date pour la branche 1.0 (n'est plus maintenue) : 1.0.13 sortie le
Liste des nouveautés apportées par la branche 1.7 Nouveautés apportées par la version 1.7
- Intégration avec Composer
- Nouveau répertoire (/app)
- Refonte du moteur d'URL
- Amélioration de l'installateur
- Nouveau Système d'assets : webassets
- Scripts en ligne de commande
- Jelix Scripts
- jDb et jDao: améliorations
- jForms: mises à jour
- Changements d'API dans le coeur du framework
- ... voir le changelog
Fin de vie : décembre 2023
Compatibilité PHP minimum : 5.6
Notes et références
[modifier | modifier le code]- « Pré-requis sur le serveur », sur jelix.org (consulté le ).
- « Framework PHP Jelix », sur jelix.org (consulté le ).
- Over-blog.com a choisi Jelix
- « Jelix, framework PHP », sur jelix.org (consulté le ).
Annexes
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- Site officiel
- Documentation (wiki)
- #jelix : channel IRC (#jelix sur Freenode)
- Article
- Développez.com
- Articles et "bouts de code" Jelix