Piste : • 1.0.2
Table des matières
Mini Tutoriel pour Jelix 1.0.2 et inférieur ¶
Ce tutoriel a pour but de vous montrer succinctement comment on réalise une application.
Ce tutoriel concerne Jelix 1.0.2 et les versions précedentes.
Téléchargement et installation ¶
Pour commencer, téléchargez l'édition "Developer" de Jelix. Jelix nécessite au moins PHP 5.2.
Décompressez ensuite l'archive obtenue avec des logiciels comme winzip, unzip ou tar. Par exemple, avec tar :
tar xvzf jelix-1.0-dev.tar.gz
Vous obtenez un répertoire jelix-1.0/lib/ dans lequel vous avez plusieurs répertoires contenant toutes les bibliothèques utilisées par jelix, ainsi que les fichiers propres à jelix dans jelix-1.0/lib/jelix/.
Pour ce tutoriel, déplacez le répertoire jelix-1.0 dans le répertoire de votre site web, de manière à ce qu'il soit accessible par une URL du genre http://localhost/jelix-1.0/. (vous pouvez renommer jelix-1.0 comme vous le souhaitez).
Il est possible de télécharger le code de ce tutoriel aux formats zip ou gzip.
Scripts de Jelix ¶
L'édition Developer de Jelix est fournie avec un script jelix.php, qui permet de créer et modifier facilement les fichiers d'une application. Ce script est situé dans jelix-1.0/lib/jelix-scripts/.
Il faut invoquer jelix.php avec la version ligne de commande de PHP, depuis une console sous Linux ou l'invite de commandes sous Windows.
Pour commencer, stockez le nom de l'application dans la variable d'environnement JELIX_APP_NAME :
export JELIX_APP_NAME=hello #sous linux set JELIX_APP_NAME=hello #sous windows
puis allez dans le répertoire des scripts :
cd lib/jelix-scripts/ #sous linux cd lib\jelix-scripts\ #sous windows
il sera alors possible de lancer la commande comme suit :
php jelix.php nom_commande [options] [paramètres]
Création d'une application ¶
Créons l'arborescence de l'application au moyen de la commande createapp :
php jelix.php createapp
Vous obtenez alors un répertoire hello/ situé au même niveau que le répertoire lib/ (d'après le nom stocké dans la variable d'environnement). Son contenu est le suivant :
hello/ modules/ les modules propres à votre application plugins/ les plugins propres à votre application var/ config/ les fichiers de configuration de votre application log/ les éventuels fichiers journaux themes/ les différents thèmes possibles dans votre application overloads/ contiendra les différents fichiers que vous aurez redéfinis, issus de modules tiers. www/ la racine du site
Création d'un module ¶
Un module “hello” est automatiquement créé dans le répertoire modules/ lorsque l'on utilise createapp. Un module représente une partie de votre application. Il en faut au moins un dans une application.
Voici le répertoire créé automatiquement :
hello/modules/ hello/ le répertoire du module module.xml fichier décrivant l'identité du module controllers/ les classes de traitement des actions default.classic.php un controleur par défaut classes/ vos classes métiers et services daos/ les fichiers de mappings relationnel-objet locales/ fichiers de langues (fichiers "properties") en_EN/ fr_FR/ templates/ templates du module zones/ objets traitant des zones spécifiques dans une page
Si vous voulez créer d'autres modules, vous pouvez utiliser la commande createmodule :
php jelix.php createmodule hello2
Implémentation d'une action ¶
Implémentons l'action par défaut. Une action est un traitement affecté à une URL précise de votre application. Ouvrez le fichier hello/modules/hello/controllers/default.classic.php, il contient :
class defaultCtrl extends jController { function index () { $rep = $this->getResponse('html'); return $rep; } }
Nous récupérons ici un objet jResponseHtml identifié par le type “html”, et nous le retournons pour que son contenu soit renvoyé au navigateur.
Objet réponse ¶
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. Définissons le titre de la page :
$rep->title = 'Hello World !';
Par défaut, jResponseHtml utilise un template pour générer le corps de la page (le contenu de <body>). Vous devez donc indiquer quel template vous voulez utiliser. Le nom du fichier template doit être placé dans la propriété bodyTpl. Ici, il s'agit du fichier hello.tpl.
$rep->bodyTpl = 'hello';
On ne met pas la partie “.tpl” car le contenu de la chaîne est en fait un sélecteur Jelix. Un sélecteur est un raccourci pour désigner une ressource d'un module.
Notez que vous pouvez réaliser vos propres objets réponse (dérivant éventuellement de la classe jResponseHtml), et de ce fait, y mettre tous les traitements de préparation communs à plusieurs ou toutes vos actions, choses que vous n'aurez pas alors à dupliquer dans chaque action (comme le nom du template, l'inclusion de zones communes etc..).
Le template ¶
Créez le fichier hello.tpl dans le répertoire templates du module. Et mettez-y ce contenu :
<h2>Hello {$nom} !</h2> <p>Bienvenue dans Jelix !</p>
“{$nom}” est une variable de template : elle sera remplacée par la valeur que vous donnerez, comme dans cet exemple :
$rep->body->assign('nom','Moi');
La propriété body de l'objet jResponseHtml est un objet jTpl, le moteur de template fourni dans Jelix.
En résumé ¶
Le code du contrôleur doit maintenant ressembler à ceci :
class defaultCtrl extends jController { function index () { $rep = $this->getResponse('html'); $rep->title = 'Hello World !'; $rep->bodyTpl = 'hello'; $rep->body->assign('nom','Moi'); return $rep; } }
Premier affichage ¶
Nous sommes maintenant prêts à afficher notre page. Votre application est accessible normalement via l'URL http://localhost/jelix-1.0/hello/www/. Pour lancer l'application, tapez l'URL suivante dans votre navigateur :
http://localhost/jelix-1.0/hello/www/index.php?module=hello&action=default:index
Vous verrez alors s'afficher votre page HTML avec le message de bienvenue.
Bien sûr, à l'avenir, vous pourrez configurer votre application et votre serveur de manière à avoir des URLs plus simple. En particulier, vous pouvez configurer le serveur de manière à spécifier le “DocumentRoot” du site sur le répertoire jelix-1.0/hello/www (et donc éviter d'avoir à taper le chemin jelix-1.0/hello/www). Et puis sachez que Jelix peut prendre en charge les URLs significatives pour éviter tout ces paramètres disgracieux.
Note :
- Pour ceux qui testent avec Jelix 1.0 beta3.1 ou inférieur, il faut taper default_index et non default:index dans l'URL.
Si vous voulez faire de cette action la page par défaut, éditez le fichier hello/var/config/index/config.ini.php et modifiez les paramètres startModule et startAction :
startModule="hello" startAction="default:index"
Vous pouvez alors taper simplement dans le navigateur :
http://localhost/jelix-1.0/hello/www/index.php
Récupération de paramètres ¶
Maintenant, il serait intéressant de pouvoir indiquer en paramètre de l'URL le nom que l'on affiche dans le template. Par exemple pouvoir indiquer “Robert” :
http://localhost/jelix-1.0/hello/www/index.php?nom=Robert
Remplaçons alors dans le contrôleur cette ligne :
$rep->body->assign('nom','Moi');
par ceci :
$nom = $this->param('nom'); $rep->body->assign('nom', $nom);
Et tapez l'URL précédente dans votre navigateur. vous devriez voir afficher :
Hello Robert ! Bienvenue dans Jelix !
Conclusion ¶
Ce mini tutoriel vous a fait découvrir les premiers concepts de base de Jelix. Vous pouvez continuer à découvrir les possibilités du framework en lisant le tutoriel principal.
- Retourner à la présentation
- Aller à la documentation
- Continuez de découvrir Jelix avec le tutoriel principal