Table of Contents

Translation in progress : FIXME

We will create an application from scratch. All jelix application has a name : the name of its directory. We will call our own “actu.org”

We consider that you have installed Jelix (Developer edition) as show on the page getting started and you use the default configuration without modifiyng its structure. We have to have installed PHP and PHP-cli as explains in that page, to be able to use the script jelix.php.

Discovring of Jelix-Scripts

Jelix (developer edition) is provied with two scripts, createapp.php and cmd.php, which facilitates the creation and modification of various files of an application based on Jelix: it is possible to create directories and database files by hand but createapp.php and cmd.php do it for you!

Le premier, createapp.php sert simplement à créer une application Jelix. Il faut l'invoquer avec la version ligne de commande de PHP et indiquer simplement le chemin complet de l'application à créer. Pour ce faire, ouvrez une console et allez dans le répertoire lib/jelix-scripts/ où est situé createapp.php :

  php createapp.php /chemin/vers/le/nouveau/répertoire/de/myapp

Le second, cmd.php, sera par contre utilisé au sein de chaque application, il n'est donc plus nécessaire de spécifier celle-ci à chaque fois, ni de rechercher la commande hors de l'application elle-même. Il faut l' invoquer avec la version ligne de commande de PHP et indiquer en paramètre un nom de commande Jelix, ainsi que d'éventuels paramètres et options. Pour ce faire, ouvrez une console et allez dans le répertoire /chemin/vers/le/nouveau/répertoire/de/ où est situé cmd.php :

  php cmd.php nom_commande [options] [paramètres]

Création d'une application

Avant de commencer, assurez vous que l'utilisateur qui exécute la commande a les droits d'écriture sur le dossier var/config et les fichiers var/config/installer.ini.php var/config/index/config.ini.php

A présent commençons par créer notre application. Tapez :

php createapp.php -nodefaultmodule /chemin/vers/le/nouveau/répertoire/de/actu.org

Vous obtenez alors un répertoire actu.org/. Son contenu est le suivant :

actu.org/
   application.init.php
   cmd.php
   modules/      les modules propres à votre application
   plugins/      les plugins propres à votre application
   project.xml
   responses/
   scripts/
   tests/
   var/
      config/    les fichiers de configuration de votre application
      log/       les éventuels fichiers journaux
      mails/
      overloads/ contiendra les différents fichiers que vous aurez redéfinis, issus de modules tiers.
      sessions/  
      themes/    les différents thèmes possibles dans votre application
      uploads/
   www/          la racine du site

Vérifiez que le répertoire /chemin/vers/le/nouveau/répertoire/de/temp/actu.org/ nouvellement créé a les permissions en écriture pour le serveur web.

Création d'un module

Notez que nous avons utilisé l'option -nodefaultmodule pour le script createapp. Sans cette option, ce script créé aussi un module par défaut du même nom que l'appli (donc actu.org/modules/actu.org). Mais dans le cadre de ce tutoriel, nous voulons créer nous-même le module, histoire de vous montrer plus de possibilités.

Donc maintenant que nous avons un squelette d'application, il va falloir créer un module, car pour le moment, votre application ne peut rien faire puisqu'il n'y a aucune action définie. En effet, il va falloir déclarer et implémenter des actions. Une action peut être l'affichage d'une page, la sauvegarde d'un formulaire, un appel de service web, etc.

Les actions sont regroupées dans des modules distincts selon le domaine fonctionnel auquel elles sont rattachées. Nous allons créer par exemple un module qui va regrouper les actions pour afficher et gérer des news. Pour ce faire, il existe la commande createmodule, qui prend en paramètre le nom du module à créer. N'oubliez pas que le script à lancer sera désormais /chemin/vers/le/nouveau/répertoire/de/myapp/cmd.php

php cmd.php createmodule news

En tapant cette commande, Jelix vous a créé un module nommé news avec toute son arborescence et quelques fichiers indispensables. Dans actu.org/modules/news/, vous trouverez donc :

 classes/            vos classes métiers et services
 controllers/        les classes de traitement des actions
    default.classic.php      un contrôleur
 daos/               les fichiers de mapping relationnel-objet
 forms/              fichiers de description des formulaires
 locales/            fichiers de langues (fichiers "properties")
    en_EN/
    fr_FR/
 module.xml          fichier décrivant l'identité du module
 templates/          templates du module
 zones/              objets traitant des zones spécifiques dans une page

Nous sommes maintenant prêts à définir des actions.