Table des matières

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 et Composer

Téléchargement

Créez un répertoire pour votre projet, initialisez un fichier composer.json, et installer le paquet jelix/jelix-standard

mkdir projects
cd projects
composer init
composer require "jelix/jelix-standard ^1.7.0"

Vous obtenez un répertoire vendor dans lequel vous avez plusieurs répertoires contenant les fichiers de Jelix et toutes les bibliothèques utilisées par jelix.

Découverte des scripts Jelix

Jelix est fourni avec trois scripts à appeler en ligne de commande, qui facilitent la création et la modification des différents fichiers d'une application basée sur Jelix, mais aussi de modifier la configuration ou les données de l'application.

Le premier, vendor/bin/create-jelix-app sert simplement à créer une application Jelix. Il faut simplement lui indiquer le chemin complet de l'application à créer.

Exemple :

  vendor/bin/create-jelix-app /chemin/vers/le/nouveau/répertoire/de/myapp

Les deux autres, dev.php et console.php sont installés dans chaque application. dev.php sert au développeur pour construire l'application, tandis que console.php sert à gérer l'application.

Création d'une application

A présent commençons par créer notre application. Aller dans le répertoire projects que vous avez créé plus haut, et tapez :

vendor/bin/create-jelix-app --no-default-module actu.org

Un certain nombre de questions vous sont posés pour vous aider à configurer un minimum le projet. Pour cet exemple, vous pouver garder les propositions par défaut, sauf pour la question “How to install jelix-www files?”, choisissez “copy”.

The web site of your company >
The licence of your application and modules (default is 'All rights reserved') >
The url to the licence if any >
Copyright on your application and modules (default is '2019 actu.org') >
The suffix of your modules id (default is '@actu.org') >
The creator name (your name for example) (default is 'actu.org') >
The email of the creator >
How to install jelix-www files?
   copy: will be copied into the www/ directory
   filelink: a symbolic link into the www/ directory will point to the lib/jelix-www directory
   vhost: you will configure your web server to set an alias to the lib/jelix-www directory
 (default is '')
  [0] copy
  [1] vhost
  [2] filelink
 > 0
Web path to the content of lib/jelix-www? (default is 'jelix/') >
Do you want to store sessions into a database? ( 'y' or 'n', default is n) >
Do you want to store sessions as files into a specific directory? ( 'y' or 'n', default is n) >

Le contenu de ce nouveau répertoire actu.org/ est le suivant :

  actu.org/
     app/
         system/   les fichiers de configuration principaux de Jelix et de votre application
         responses/    réponses personnalisées pour l'application (views)
         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.
     application.init.php   le fichier inclus pour initialiser jelix et l'application
     console.php   un script pour lancer des commandes de maintenance sur l'application
     dev.php       le script pour lancer des commandes pour le développement
     modules/      les modules de votre application
     plugins/      les plugins de votre application
     temp/         Il contiendra tout les fichiers temporaires générés par Jelix ou l'application.
     var/
         config/   les fichiers de configuration de votre application propres au serveur où elle est installée
         log/      les éventuels fichiers journaux
     www/          la racine du site

Création d'un module

Notez que nous avons utilisé l'option --no-default-module pour le script create-jelix-app. 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 module:create, qui prend en paramètre le nom du module à créer. Le script à lancer est désormais dev.php situé dans votre nouvelle application

php dev.php module:create news --default-module

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 :

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
│   ├── configure.php        script de configuration du module
│   └── 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
├── urls.xml                 mapping des urls
└── zones                    objets traitant des zones spécifiques dans une page

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