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é Jelix ([[fr:telechargement:stable#edition-developer|Édition Developer]]) comme indiqué sur la page de [[http://docs.jelix.org/fr/manuel-1.3/mise-en-route|mise en route]] et que vous utilisez la configuration par défaut sans avoir modifié son arborescence. Il faut avoir aussi installé PHP et PHP-cli comme il est précisé dans cette même page, pour utiliser le script //jelix.php//.
===== Découverte de Jelix-Scripts =====
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 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 @@F@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 @@F@/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 @@c@createapp@@. 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.
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 @@F@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.