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édentes Révision précédente
Prochaine révision
Révision précédente
fr:tutoriels:minitutoriel:1.0.2 [2008/03/30 22:36]
laurent
fr:tutoriels:minitutoriel:1.0.2 [2012/04/14 21:50]
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 21:50 par laurent
Fils rss des changements récents dans le wiki Creative Commons License