Piste :
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
presentation [2006/04/16 09:11] – laurent | fr:presentation [2012/12/06 20:28] – laurent | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ~~LANG: | ||
+ | |||
====== Présentation de Jelix ====== | ====== Présentation de Jelix ====== | ||
+ | |||
===== Généralités ===== | ===== Généralités ===== | ||
- | Jelix est un framework pour PHP5, dont l' | + | Jelix est un framework pour PHP5 qui aide les développeurs |
- | Il propose | + | Il propose : |
- | * un ensemble d'API qui prend en charge nombre d' | + | * un ensemble d'API qui prend en charge nombre d' |
* une structure modulaire et une organisation des fichiers du projet, imposant donc un cadre et des normes de développement. | * 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" | + | * Une cinématique MVC (Model, View, Controller), |
Ces caractéristiques permettent une meilleure réutilisation du code, une capitalisation du savoir-faire, | Ces caractéristiques permettent une meilleure réutilisation du code, une capitalisation du savoir-faire, | ||
- | Jelix utilise au maximum les spécificités de PHP5, afin d' | + | Jelix utilise au maximum les spécificités de PHP 5.2, afin d' |
- | ===== Fonctionnalités proposées | + | ====== Philosophie ====== |
- | ==== Fonctions originales ==== | + | Nous développons Jelix en gardant ces mots en tête : |
- | * **Architecture modulaire** : une application peut être découpée en plusieurs modules réutilisables. | + | * **Performance**: le framework doit être le plus performant |
- | * **Garantie minimale sur l' | + | * **Simplicité**: fournir des API simple |
- | * **génération des erreurs techniques dans le format spécifié** Grâce au système de Jelix décrit précédement, toutes | + | * **Flexibilité**: permettre la modularisation, l'utilisation |
- | * **Moteur de template léger et évolutif** (jTpl), avec pour les templates une syntaxe à mi-chemin entre Smarty | + | * **Robustesse**: les réponses aux navigateurs se font toujours dans le format attendu, même en cas d' |
- | * **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 | + | * **Pragmatisme**: ne pas réinventer des API si PHP fourni nativement ce qu'il faut. |
- | * **Désignation des fichiers et ressources par des sélecteurs**, et non par des chemins physiques, apportant alors une certaine indépendance d'un module vis à vis de l' | + | |
- | * **Système évènementiel**, permettant la communication inter-module. | + | |
- | * **Surcharge de fichier** : il est possible de redéfinir certains fichiers d'un module sans toucher aux originaux (dao, template, properties). Utile lorsqu' | + | |
- | ==== Fonctions et caractéristiques modernes ==== | ||
- | Fonctions que l'on retrouve peu souvent dans les frameworks. | + | ===== Fonctionnalités proposées ===== |
+ | ==== Fonctions et caractéristiques originales ==== | ||
- | * **Services Web** : Jelix prend en charge l' | + | * **Architecture modulaire** : une application peut être découpée en plusieurs modules réutilisables. |
+ | * **Garantie minimale sur l' | ||
+ | * **Génération des erreurs techniques dans le format spécifié**. Grâce au système de Jelix décrit précédemment, | ||
+ | * **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...). jDao génère des classes PHP avec les requêtes SQL "en dur", permettant alors des performances accrues par rapport à d' | ||
+ | * **jForms, générateur de formulaire** : à partir d'un simple fichier XML, jForms génère un formulaire en HTML avec la validation javascript adéquate, vérifie les données saisie coté serveur, effectue le chargement ou la sauvegarde des données etc.. Il peut gérer plusieurs instances d'un formulaire en même temps. | ||
+ | * **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" | ||
+ | * **Système événementiel**, | ||
+ | * **Surcharge de fichier** : il est possible de redéfinir certains fichiers d'un module sans toucher aux originaux (daos, templates, locales, formulaires). Cela permet de partager un même module par plusieurs applications, | ||
+ | * **Déclarations de zones de pages** : la construction d'une page web peut se " | ||
+ | * **Désignation des fichiers et ressources par des sélecteurs**, | ||
+ | |||
+ | ==== Fonctions et caractéristiques classiques ==== | ||
+ | |||
+ | * **Services Web** : Jelix prend en charge l' | ||
* **Prise en charge de RESTfull** : par simple implémentation d'une interface, on peut définir facilement les traitements suites aux requetes HTTP GET/ | * **Prise en charge de RESTfull** : par simple implémentation d'une interface, on peut définir facilement les traitements suites aux requetes HTTP GET/ | ||
* **Système de thèmes** : il est possible de définir plusieurs thèmes, chacun redéfinissant les templates des modules. | * **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' | * **Système de génération automatique et de mapping d' | ||
- | * **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, | + | * **CRUD générique** : Jelix propose un contrôleur générique permettant de faire une interface d' |
+ | * **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, | ||
* **Système de cache technique** : quasiment tous les fichiers non PHP d'un projet Jelix sont " | * **Système de cache technique** : quasiment tous les fichiers non PHP d'un projet Jelix sont " | ||
+ | * **Compatible UTF-8**. C'est d' | ||
+ | * **Module dédié aux tests unitaires** : les tests unitaires sont essentiels pour créer une application qui soit fiable. Jelix propose donc un module qui fourni une interface pour lancer les tests unitaires et un moyen simple de créer des tests unitaires (reposant sur SimpleTest) | ||
+ | * **L' | ||
+ | * 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 ou via TCPDF). D' | ||
+ | * **Couche d' | ||
+ | * **Localisation** : il est possible d' | ||
+ | * **Système d' | ||
+ | * Utilisation du XML : déclaration des évènements, | ||
- | ==== Fonctions et caractéristiques classiques | + | ===== Principe de fonctionnement ===== |
- | Fonctions que l'on retrouve dans beaucoup de frameworks | + | {{http:// |
- | * L' | + | |
- | * **Couche d' | + | - La méthode du contrôleur correspondante à l'action est executée. La méthode |
- | * **Localisation** : stockage | + | - Le contrôleur exécute les traitements métiers et récupère éventuellement |
- | * **Système d' | + | - Le contrôleur instancie un objet de type jResponse auquel il assignera les données à afficher, initialisera les templates |
- | * Utilisation du XML : déclaration des évènements, des DAOs etc... Cela permet de faciliter l' | + | - Jelix récupère cet objet jResponse, invoque la génération du document en sortie |
===== Une première application ===== | ===== Une première application ===== | ||
- | Lire [[manuel: | + | Lire [[fr: |