Nous allons créer une application à partir de rien. Toute application Jelix a un
nom : celui de son répertoire. Nous allons appeler la notre "actu.org".
On considère que vous avez installé PHP, PHP-cli.
===== Téléchargement =====
Téléchargez Jelix depuis ([fr:telechargement:stable:1.6#edition-developer|la page de téléchargement]]),
Édition Developer, et désarchivez le fichier obtenu :
tar xvzf jelix-1.6.28-opt.tar.gz
# ou
unzip jelix-1.6.28-opt.zip
Vous obtenez un répertoire @@jelix-1.6.28-dev@@ dans lequel il y a @@lib/@@ et @@temp/@@.
Renommez le répertoire @@jelix-1.6.28-dev@@ en @@projet@@ par exemple.
mv jelix-1.6.28-dev projet
===== Découverte des scripts Jelix =====
Jelix (édition //developer//) est fourni avec deux scripts, @@createapp.php@@ et @@cmd.php@@,
qui facilitent la création et la modification des différents fichiers d'une application
basée sur Jelix : il est possible de créer les répertoires et les fichiers de base à la
main mais @@createapp.php@@ et @@cmd.php@@ le font pour vous !
Le premier, @@createapp.php@@ sert à créer une application Jelix.
Il faut l'invoquer avec la version ligne de commande de PHP et indiquer
le chemin complet de l'application à créer. il se situe dans le répertoire
@@projet/lib/jelix-scripts/@@. Par exemple :
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 le nom de l'application à chaque fois,
ni de rechercher la commande hors de l'application elle-même. Il faut l'invoquer
avec PHP en ligne de commande et indiquer en paramètre un nom de commande Jelix,
ainsi que d'éventuels paramètres et options.
Il faut donc aller dans @@/chemin/vers/le/nouveau/répertoire/de/myapp@@ et la lancer
comme ceci :
php cmd.php nom_commande [options] [paramètres]
===== Création d'une application =====
A présent commençons par créer notre application. Aller dans le répertoire
@@projet@@ que vous avez créé plus haut, et tapez :
cd projet/
php lib/jelix-scripts/createapp.php -nodefaultmodule actu.org
Le contenu de ce nouveau répertoire @@F@actu.org/@@ 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
===== Création d'un module =====
Notez que nous avons utilisé l'option @@-nodefaultmodule@@ pour le script
@@c@createapp.php@@. Sans cette option, ce script créé aussi un module par
défaut du même nom que l'appli (donc @@F@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 @@c@createmodule@@, qui prend en
paramètre le nom du module à créer. Le script à lancer
est @@cmd.php@@ situé dans votre nouvelle application
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
@@F@actu.org/modules/news/@@, vous trouverez donc :
modules/news/
├── 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
├── install
│ └── install.php script d'installation du module
├── locales fichiers de langues (fichiers "properties")
│ ├── en_US
│ └── 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.