Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Piste :

Wiki: Plan du site - Derniers changements - Back link

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:presentation [2008/12/28 19:53] laurentfr:presentation [2019/09/10 08:44] (Version actuelle) laurent
Ligne 7: Ligne 7:
  
  
-Jelix est un framework pour PHP5 qui aide les développeurs à la réalisation d'applications ou de sites web en tout genre.+Jelix est un framework pour PHP 5.6 et 7.x qui aide les développeurs à la réalisation d'applications ou de sites web en tout genre.
  
 Il propose : Il propose :
  
-  * un ensemble d'API qui prend en charge nombre d'aspects techniques : accès aux données, moteur de templates, générateurs de contenus (HTML, XUL, ...), services web (json, xml-rpc, json-rpc,...), générateur de formulaires, CRUD générique, authentification, gestion de droits, localisation etc..+  * un ensemble d'API qui prend en charge nombre d'aspects techniques : accès aux données, moteur de templates, générateurs de contenus (HTML, JSON, XML, ...), services web (SOAP, xml-rpc, json-rpc,...), générateur de formulaires, CRUD générique, 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.   * une structure modulaire et une organisation des fichiers du projet, imposant donc un cadre et des normes de développement.
   * Une cinématique MVC (Model, View, Controller), permettant un découpage "en couche" du projet.   * Une cinématique MVC (Model, View, Controller), permettant un découpage "en couche" du projet.
Ligne 17: Ligne 17:
 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é. 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 PHP 5.2, afin d'être le plus léger et le plus performant possible. C'est pourquoi un projet basé sur Jelix est 100% objet.+Jelix utilise au maximum les spécificités de PHP 5.6, afin d'être le plus léger et le plus performant possible. C'est pourquoi un projet basé sur Jelix est 100% objet.
  
 ====== Philosophie ====== ====== Philosophie ======
Ligne 25: Ligne 25:
    * **Performance**: le framework doit être le plus performant possible (optimisation du code, système de caches, version optimisée pour les serveurs de production etc..)    * **Performance**: le framework doit être le plus performant possible (optimisation du code, système de caches, version optimisée pour les serveurs de production etc..)
    * **Simplicité**: fournir des API simple et puissante à la fois, fournir des scripts pour générer des modules, scripts...    * **Simplicité**: fournir des API simple et puissante à la fois, fournir des scripts pour générer des modules, scripts...
-   * **Flexibility**: permettre la modularisation, l'utilisation de plugins, le découplage (avec modération)+   * **Flexibilité**: permettre la modularisation, l'utilisation de plugins, le découplage (avec modération)
    * **Robustesse**: les réponses aux navigateurs se font toujours dans le format attendu, même en cas d'erreur.    * **Robustesse**: les réponses aux navigateurs se font toujours dans le format attendu, même en cas d'erreur.
    * **Pragmatisme**: ne pas réinventer des API si PHP fourni nativement ce qu'il faut.    * **Pragmatisme**: ne pas réinventer des API si PHP fourni nativement ce qu'il faut.
Ligne 45: Ligne 45:
    * **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.    * **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.
  
-==== Fonctions et caractéristiques modernes ==== +==== Fonctions et caractéristiques classiques ====
- +
-Fonctions que l'on retrouve dans les frameworks récents.+
  
-   * **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, ...)+   * **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 SOAP, XML-RPC, JSON-RPC ou JSON. D'autres types de services web sont tout à fait envisageables. 
    * **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.    * **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 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).+   * **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.
    * **CRUD générique** : Jelix propose un contrôleur générique permettant de faire une interface d'administration d'une table SQL en quelques lignes de code, avec l'aide de jDao et jForms    * **CRUD générique** : Jelix propose un contrôleur générique permettant de faire une interface d'administration d'une table SQL en quelques lignes de code, avec l'aide de jDao et jForms
    * **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)    * **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)
Ligne 58: Ligne 56:
    * **Compatible UTF-8**. C'est d'ailleurs l'encodage par défaut du framework.    * **Compatible UTF-8**. C'est d'ailleurs l'encodage par défaut du framework.
    * **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)    * **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)
- 
- 
-==== 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).    * **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 ou via TCPDF). D'autres formats sont bien sûr possible.+   * Jelix propose **différents générateurs de format** (les objets jResponse) : XHTML, CSS, ATOM, RSS, XML, RDF, ZIP, PDF (via TCPDF). 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.    * **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** : il est possible d'avoir son application en plusieurs langues. Le stockage des chaînes localisées se fait dans des fichiers properties.    * **Localisation** : il est possible d'avoir son application en plusieurs langues. Le stockage des chaînes localisées se fait dans des fichiers properties.
    * **Système d'authentification et de gestion de droits**.    * **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 (dont le plugin jelixEclipse pour eclipse), et donc d'accroitre la productivité.+   * 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é.
  
 ===== Principe de fonctionnement ===== ===== Principe de fonctionnement =====
Ligne 76: Ligne 68:
  
   - Jelix reçoit une requête HTTP. Il instancie un objet jRequest qui contient les données de la requête, et instancie le contrôleur qui correspond à l'action.   - Jelix reçoit une requête HTTP. Il instancie un objet jRequest qui contient les données de la requête, et instancie le contrôleur qui correspond à l'action.
-  - La méthode du contrôleur correspondante à l'action est executée. La méthode  récupère les paramètres de requête pour déterminer les traitements à suivre.+  - La méthode du contrôleur correspondante à l'action est exécutée. La méthode  récupère les paramètres de requête pour déterminer les traitements à suivre.
   - Le contrôleur exécute les traitements métiers et récupère éventuellement des résultats qui seront utilisés pour l'affichage   - Le contrôleur exécute les traitements métiers et récupère éventuellement des résultats qui seront utilisés pour l'affichage
   - Le contrôleur instancie un objet de type jResponse auquel il assignera les données à afficher, initialisera les templates etc.   - Le contrôleur instancie un objet de type jResponse auquel il assignera les données à afficher, initialisera les templates etc.
Ligne 84: Ligne 76:
  
 Lire [[fr:tutoriels:minitutoriel|le mini tutoriel]]. Lire [[fr:tutoriels:minitutoriel|le mini tutoriel]].
 +
fr/presentation.1230494012.txt.gz · Dernière modification : 2008/12/28 19:53 de laurent
Fils rss des changements récents dans le wiki Creative Commons License