Raccourcis : Contenu - rubriques - sous rubriques
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
manuel:minitutoriel:1.0.2 [2008/03/30 20:36] laurentfr:tutoriels:minitutoriel:1.0.2 [2012/04/14 19:50] (Version actuelle) laurent
Ligne 1: Ligne 1:
 +====== 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, [[fr:telechargement:stable|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 
 +[[http://download.jelix.org/forge/tutors/base_jelix-1.0/hello.zip|zip]] ou 
 +[[http://download.jelix.org/forge/tutors/base_jelix-1.0/hello.tar.gz|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// :
 +<code bash>
 +  export JELIX_APP_NAME=hello        #sous linux
 +  set JELIX_APP_NAME=hello           #sous windows
 +</code>
 +
 +puis allez dans le répertoire des scripts :
 +<code bash>
 +   cd lib/jelix-scripts/          #sous linux
 +   cd lib\jelix-scripts\          #sous windows
 +</code>
 +
 +il sera alors possible de lancer la commande comme suit :
 +<code bash>
 +php jelix.php nom_commande [options] [paramètres]
 +</code>
 +
 +
 +
 +===== Création d'une application =====
 +
 +Créons l'arborescence de l'application au moyen de la commande //createapp// :
 +
 +<code bash>
 +php jelix.php createapp
 +</code>
 +
 +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// :
 +
 +<code bash>
 +php jelix.php createmodule hello2
 +</code>
 +
 +
 +
 +===== 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 : 
 +
 +<code php>
 +class defaultCtrl extends jController {
 +
 +   function index () {
 +      $rep = $this->getResponse('html');
 +
 +      return $rep;
 +   }
 +}
 +</code>
 +
 +
 +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 [[http://docs.jelix.org/fr/manuel-1.0/responsehtml|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 :
 +
 +<code php>
 +   $rep->title = 'Hello World !';
 +</code>
 +
 +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. 
 +
 +<code php>
 +   $rep->bodyTpl = 'hello';
 +</code>
 +
 +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 [[http://docs.jelix.org/fr/manuel-1.0/zones|zones]] communes etc..).
 +
 +
 +==== Le template ====
 +
 +Créez le fichier //hello.tpl// dans le répertoire //templates// du module. Et mettez-y ce contenu :
 +
 +<code xml>
 +  <h2>Hello {$nom} !</h2>
 +  <p>Bienvenue dans Jelix !</p>
 +</code>
 +
 +"{$nom}" est une variable de template : elle sera remplacée par la valeur que vous donnerez, comme dans cet exemple :
 +
 +<code php>
 +   $rep->body->assign('nom','Moi');
 +</code>
 +
 +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 :
 +
 +<code php>
 +class defaultCtrl extends jController {
 +
 +   function index () {
 +      $rep = $this->getResponse('html');
 +      $rep->title = 'Hello World !';
 +      
 +      $rep->bodyTpl = 'hello';
 +      $rep->body->assign('nom','Moi');
 +    
 +      return $rep;
 +   }
 +}
 +</code>
 +
 +
 +
 +
 +
 +===== 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// :
 +
 +<code ini>
 +startModule="hello"
 +startAction="default:index"
 +</code>
 +
 +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 :
 +<code php>
 + $rep->body->assign('nom','Moi');
 +</code>
 +
 +par ceci :
 +
 +<code php>
 +   $nom = $this->param('nom');
 +   $rep->body->assign('nom', $nom);
 +</code>
 +
 +Et tapez l'URL précédente dans votre navigateur. vous devriez voir afficher :
 +
 +<code>
 +   Hello Robert !
 +
 +   Bienvenue dans Jelix !
 +</code>
 +
 +
 +
 +
 +===== 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 [[fr:tutoriels:jelixnews|tutoriel principal]].
 +
 +-----
 +   * Retourner à [[:fr:presentation|la présentation]]
 +   * Aller à la [[fr:documentation:|documentation]]
 +   * Continuez de découvrir Jelix avec le [[fr:tutoriels:jelixnews|tutoriel principal]]
fr/tutoriels/minitutoriel/1.0.2.txt · Dernière modification : 2012/04/14 19:50 de laurent
Fils rss des changements récents dans le wiki Creative Commons License