Présentation du framework JelixDate de publication : 31/12/2009
Par
Rija Randriano (Site perso de Randriano)
Le langage avec quoi je programme jusqu'à maintenant c'est essentiellement du C++. Mon monde était toujours la création d'applications lourdes. Pour me faire un peu d'exercice en applications légères (Web), je me fais un peu de PHP et j'ai constaté qu'écrire avec du PHP brut deviendrait un vrai bazar version après version. Je passe donc à la recherche de framework : Zend démeure le plus connu de la communauté PHP. Mais j'ai découvert Jelix un framework open source créé par un Français : Laurent Jouanneau. Assez récent, il n'est pas encore aussi documenté que ses ainés.
I. IntroductionI-A. PréfaceI-B. Architecture MVC
Comme la plupart des frameworks PHP, JELIX utilise aussi l'architecture MVC (Modèle - Vue - Contrôleur).
Au long du cycle de vie de l'application, ce type de code devient impossible à maintenir car le client continue de demander des modifications, qui sont codées à plusieurs endroits du code principal.
Le modèle objet de PHP5 allié à la puissance interne de PHP a permis l'apparition de différents frameworks PHP. Le PHP a maintenant atteint la capacité du Java, .NET ou autres en terme de conception logicielle.
I-C. Principe de fonctionnement
Source : jelix.org
II. JELIX proprement ditII-A. Organisation du répertoiresJelix utilise une structure particulière de répertoires. Jelix est fourni sous forme d’une archive tar.gz ou zip. Cette archive contient un répertoire jelixprojects/lib
qui contient tous les fichiers du framework et les bibliothèques dépendantes, ainsi qu’un répertoire jelixprojects/temp. Création d'une applicationIl faut d'abord créer ce qu'est une application (le site web ou l'application web proprement dit). Jelix est fourni avec un script, jelix.php, qui facilite la création et la modification des
différents fichiers d’une application basée sur Jelix! Il faut l’invoquer avec la version ligne de commande de
PHP et indiquer en paramètre un nom de commande Jelix. Pour la création d'une application, on a la commande : createapp ex : php ..\www\jelixprojects\lib\jelix-scripts\jelix.php --randriano.org createapp -nodefaultmodule Ici, randriano.org est le nom de l'application qui va être créée. La structure particulière de répertoires est enfin créée :
II-B. Création d'un module
Bien qu'utilisant le design pattern MVC, les contrôleurs et fonctionnalités d'une application sont regroupés en modules.
Un module est un répertoire dans lequel il y a une arborescence précise. Pour en créer, il suffit d'utiliser le script jelix.php et la commande createmodule : ex : php ..\www\jelixprojects\lib\jelix-scripts\jelix.php --randriano.org createmodule nouveautes Où nouveautes est le module à créer! ContrôleursC'est un des éléments importants du MVC. Les contrôleurs sont les objets qui vont effectuer les actions correspondantes à chacune des urls d'une application. A la création d'un module, un contrôleur par défaut nommé "default" est créé. Sous Jelix, un contrôleur est une classe qui hérite de la classe jController
index() est ici l'action par défaut qui est créée pour le contrôleur. II-B-2. Les objets jResponseOn a jController pour les contrôleurs, jResponse représente la vue dans le modèle MVC de Jelix. Toute demande d'affichage passe par cet objet. L'objet jResponseHtml s'occupe de générer une réponse en HTML (donc une page en HTML). Il génère automatiquement la partie <head> du HTML, à partir de certaines de ses propriétés. On indique l'alias "html" à la méthode getResponse(). On récupère la réponse comme suit:
Un objet jResponse implémente un certain nombre de méthodes comme addHttpHeader(), setHttpStatus(), etc pour manipuler le contenu HTML. Le source HTML d'une page est pour Jelix découpé en 2 parties : la partie <head>, et la partie <body> mais jResponseHtml ne s'occupe donc comme dit auparavant que de <head> L'objet jResponse est hérité par plusieurs objets dont jResponseHtml, il y a aussi les réponses particulières comme la redirection. Mais il permet aussi de générer une interface utilisateur en XUL. Un peu de définition: XUL est un langage de description d’interfaces graphiques fondé sur XML créé dans le cadre du projet Mozilla. L'objet jResponseXul permet de générer une fenêtre XUL (<window>). Il y a aussi jResponseXulDialog pour les boîtes de dialogue (<dialog>), jResponseXulOverlay pour les overlays XUL (<overlay>), et jResponseXulPage pour les pages XUL incluses via une balise <iframe> dans une fenêtre XUL. II-B-3. Les templatesjResponseHtml pour la partie <head> , la génération du contenu de la partie <body> est de votre ressort, avec l'aide éventuellement des templates. Le contenu du template sera le contenu de la balise <body>. C’est
pourquoi vous n’avez pas à mettre les balises standard <html>, <head>, etc... Juste le contenu de la
page. Pour utiliser un template, il suffit d'indiquer le sélecteur de template dans la propriété bodyTpl.
listnews correspond à un fichier listnews.tpl dans le répertoire templates du module. II-C. Jelix et les bases de donnéesIII. CONCLUSIONCeci n'est pas un tutoriel mais seulement une présentation rapide de ce puissant framework.
Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
|