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 [[https://getcomposer.org/doc/00-intro.md|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 @@F@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 @@F@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
@@c@create-jelix-app@@. 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@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 @@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
│ ├── 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.