Jelix

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Jelix
Description de l'image Logo jelix.png.

Informations
Développé par Liste des contributeurs
Dernière version 1.6.2 ()Voir et modifier les données sur Wikidata
Dépôt download.jelix.org/jelix/nightly/latest-nightly-jelix-1.7.x-dev.tar.gzVoir et modifier les données sur Wikidata
Écrit en PHPVoir et modifier les données sur Wikidata
Langues Français, anglais
Type FrameworkVoir et modifier les données sur Wikidata
Licence Licence publique générale limitée GNUVoir et modifier les données sur Wikidata
Site web jelix.orgVoir et modifier les données sur Wikidata

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 5, créé fin 2005 par un Français, Laurent Jouanneau. Le site web du projet ouvrit officiellement ses portes le 1er janvier 2006.

À 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[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ée, 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.6 est sortie le 20 juin 2014
  • La version 1.5 est sortie le 20 février 2013
  • La version 1.4 est sortie en août 2012
  • La version 1.3 est sortie en octobre 2011
  • La version 1.2 est sortie pour noël 2010
  • La version 1.1 est sortie en février 2009
  • La première version stable 1.0 est sortie en janvier 2008

Des versions correctives de ces quatre branches sortent régulièrement.

  • Dernière en date pour la branche 1.6 (changelog) sortie le 24 novembre 2014
  • Dernière en date pour la branche 1.5 : (changelog) 1.5.4 sortie le 23 septembre 2014
  • Dernière en date pour la branche 1.4 : (changelog) 1.4.6 sortie le 23 septembre 2014
  • Dernière en date pour la branche 1.3 (n'est plus maintenue) : 1.3.9 sortie le 23 septembre 2014
  • Dernière en date pour la branche 1.2 (n'est plus maintenue) : 1.2.13 sortie le 19 septembre 2013
  • Dernière en date pour la branche 1.1 (n'est plus maintenue) : 1.1.12 sortie le 22 mars 2012
  • Dernière en date pour la branche 1.0 (n'est plus maintenue) : 1.0.13 sortie le 25 septembre 2010

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[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]