Jelix
Jelix est un cadriciel (framework) pour PHP5 open source, MVC, permettant le développement de tout type d'application.
Développé par | Liste des contributeurs |
---|---|
Dernière version |
1.6.2 () 1.7.5 () |
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 |
Historique
Jelix est un framework pour PHP 5, 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[1], dont l'une des plus grosses plates-formes de blogs françaises[2].
Quelques articles de presse ont été publiés, notamment dans la revue Linux-DVD[3].
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
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
- 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.6 (changelog) sortie le
- Dernière en date pour la branche 1.5 : (changelog) 1.5.4 sortie le
- Dernière en date pour la branche 1.4 : (changelog) 1.4.6 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.4 : changelog jelix stable 1.4
- support PSR0
- nouvelle api de gestion de cache HTTP
- nouvelle classe jPref
- nouvelles classes de gestion des flux RSS/ATOM
- nouvelles méthodes jApp:config et jApp:coord à la place des "globales" $gjConfig et $gjCoord
- plus voir le changelog
Liste des nouveautés apportées par la branche 1.3 : changelog jelix stable 1.3
- Plus qu'un fichier application.init.php et seulement un dossier temp sont nécessaires pour www, cli et jelix scripts.
- jLog et jResponseHtml ont maintenant des plugins.
- Nouvelle gestion des erreurs. jLog est utilisé pour stocker les erreurs qui ne sont maintenant plus affichées dans les réponses.
- Nouvelle page d'erreur (code http : 500) affichée quand une erreur survient. Vous pouvez la redéfinir pour avoir le design que vous voulez.
- Tous les profils de connexion (pour jDb, jKVDb, jCache, etc.) sont maintenant stockés dans un seul fichier profiles.ini.php.
- Une nouvelle debug bar, extensible, affichant de nombreuses informations (erreurs, requêtes sql…)
- Les constantes JELIX_APP_* sont maintenant remplacées par une nouvelle classe jApp.
- Améliorations dans jAcl2 : les sujets de groupes et les droits peuvent être interdits par un groupe.
- Réécriture majeure de jelix-scripts, pour une utilisation plus simple des commandes jelix : il n'y a plus de script jelix.php. Il a été remplacé par un nouveau script cmd.php dans l'application pour lancer les commandes, et par un script createapp.php dans lib/jelix-scripts/. Jelix-scripts est fourni dans les trois éditions (dev, opt, gold).
La branche 1.2 apporte de nombreuses nouveautés :
- nouvelle gestion des modules
- nouveau système d'installation et de mise à jour
- nouveau système d'assistant graphique (wizard configurable) pour l'installation des applications jelix
- amélioration de la performance et de la flexibilité des profiles jDb
- nouvelle classe jCache pour stocker tout ce que vous voulez dans un cache, où vous voulez (memcache, files..)
- possibilité de mettre hors ligne une application facilement
- support des bases de données nosql avec jKVDb
- mise à jour de TCPDF en 4.5.015
- mise à jour de Wikirenderer en 3.1.2
Notes et références
Annexes
Articles connexes
Liens externes
- Site officiel
- Documentation (wiki)
- #jelix : channel IRC (#jelix sur Freenode)
- Article
- Développez.com
- Articles et "bouts de code" Jelix
- Portail de la programmation informatique