Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Piste : presentation

Wiki: Plan du site - Derniers changements - Back link

Ceci est une ancienne révision du document !


Présentation de Jelix

Généralités

Jelix est un framework pour PHP5, dont l'objectif est d'aider à la réalisation d'applications ou de sites web en tout genre.

Il propose au développeur :

  • un ensemble d'API qui prend en charge nombre d'aspects techniques : accès aux données, cinématique MVC, templates, générateurs de sorties (HTML, XUL, …), services web (xml-rpc, json-rpc), authentification, gestion de droits, localisation etc..
  • une structure modulaire et une organisation des fichiers du projet, imposant donc un cadre et des normes de développement.
  • un découpage “en couche” du projet : présentation, coordination, service, métier, persistance.

Ces caractéristiques permettent une meilleure réutilisation du code, une capitalisation du savoir-faire, une meilleure organisation dans le développement, tout ceci ayant alors pour conséquence une meilleure productivité.

Jelix utilise au maximum les spécificités de PHP5, afin d'être le plus léger et le plus performant possible. C'est pourquoi un projet basé sur Jelix est 100% objet.

Fonctionnalités proposées

Fonctions et caractéristiques originales

  • Architecture modulaire : une application peut être découpée en plusieurs modules réutilisables.
  • Désignation des fichiers et ressources par des sélecteurs, et non par des chemins physiques, apportant alors une indépendance d'un module vis à vis de l'installation.
  • Système événementiel, permettant la communication entre module.
  • Surcharge de fichier : il est possible de redéfinir certains fichiers d'un module sans toucher aux originaux (dao, template, properties). Cela permet de partager un même module par plusieurs applications, de faciliter sa mise à jour.
  • Garantie minimale sur l'échange des données : Jelix contrôle la génération des formats de sortie en fonction du type de requête. Par exemple, s'il s'agit d'une requête pour un service web XML-RPC, il n'est pas possible de générer du HTML, la réponse sera obligatoirement en XML-RPC. Cela offre donc une certaine robustesse de l'application dans la communication client-serveur. (À moins que le développeur n'utilise pas les objets de Jelix, car rien empêche en effet de faire un echo de n'importe quoi n'importe où).
  • génération des erreurs techniques dans le format spécifié Grâce au système de Jelix décrit précédemment, toutes les erreurs techniques sont renvoyées dans le format attendu par le client. Pas d'erreur formatée en HTML alors que le client attend une réponse en XML-RPC ou RDF par exemple.
  • Moteur de template très léger, performant et évolutif (jTpl), avec pour les templates une syntaxe à mi-chemin entre Smarty et PHP. Un système de plugin à la Smarty est également disponible.
  • jDAO, mapping objet-relationnel reposant sur le design pattern DAO (Data Access Object), se basant sur des fichiers déclaratifs en XML et prenant en charge la génération automatique des requêtes SQL, des problématiques de sécurité (SQL injection etc…)
  • Déclarations de zones de pages : la construction d'une page web peut se “découper” en plusieurs zones, chaque zone étant paramétrable, ayant son propre code métier, son propre template, permettant alors de les réutiliser dans plusieurs pages. Chaque zone peut également être mises en cache indépendamment.

Fonctions et caractéristiques modernes

Fonctions que l'on retrouve peu souvent dans les frameworks.

  • Services Web : Jelix prend en charge l'analyse du contenu des requêtes, et la génération des réponses pour les appels de services web en XML-RPC, JSON-RPC ou JSON. D'autres types de services web sont tout à fait envisageables (SOAP, …).
  • Prise en charge de RESTfull : par simple implémentation d'une interface, on peut définir facilement les traitements suites aux requetes HTTP GET/POST/PUT/DELETE.
  • Système de thèmes : il est possible de définir plusieurs thèmes, chacun redéfinissant les templates des modules.
  • Système de génération automatique et de mapping d'url : pas d'url en dur dans Jelix. C'est le framework qui se charge de générer les urls dans les templates ou ailleurs, en fonction de la configuration du mapping url définit sur les actions (mod_rewrite &co).
  • Des scripts PHP de génération de code à exécuter en ligne de commande, permettant la création rapide des divers fichiers d'un projet (module, dao, template, controlleur etc)
  • Système de cache technique : quasiment tous les fichiers non PHP d'un projet Jelix sont “compilés” en PHP afin d'améliorer les performances (templates, dao, évènements etc..).
  • Compatible UTF-8. C'est d'ailleurs l'encodage par défaut du framework.

Fonctions et caractéristiques classiques

Fonctions que l'on retrouve dans beaucoup de frameworks

  • L'architecture du coeur est du type MVC (Model-View-Controller). Un coordinateur se charge de lancer l'exécution d'une action précise en fonction des paramètres dans l'url. Les actions possibles sont implémentées dans des classes de type jController (contrôleurs).
  • Jelix propose différents générateurs de format (les objets jResponse) : XHTML, CSS, ATOM, RSS, XML, RDF, XUL, overlay XUL, ZIP, PDF (à partir de fichiers en Latex). D'autres formats sont bien sûr possible.
  • Couche d'abstraction d'accès aux bases de données : jDb repose sur PDO ou sur ses propres classes (quand PDO n'est pas disponible) pour accéder aux bases de données.
  • Localisation : stockage des messages localisés dans des fichiers properties.
  • Système d'authentification et de gestion de droits.
  • Utilisation du XML : déclaration des évènements, des DAOs etc… Cela permet de faciliter l'écriture, de générer et modifier facilement ces parties d'un projet par des outils tiers, et donc d'accroître la productivité.

Une première application

fr/presentation.1174075001.txt.gz · Dernière modification : 2007/09/17 22:42 (modification externe)
Fils rss des changements récents dans le wiki Creative Commons License