Chapitre: Utiliser jelix-scripts
« Configurer le serveur | ^ Mise en route |
− Table des matières
Jelix est fourni avec plusieurs scripts, dont bin/create-jelix-app
,
qui permet de créer facilement une nouvelle application, et dev.php
installé dans l'application créé, qui permet de modifier facilement des éléments
du projet, ou de réaliser des actions sur le projet.
Il faut appeler ces scripts à partir d'une console, en ligne de commande, avec la version CLI de PHP. Il faut donc installer cet exécutable avant de pouvoir profiter pleinement de Jelix.
Configuration de PHP-CLI ¶
Pour Ubuntu/Debian/autre linux ¶
Vous devez installer le paquet php5-cli
ou php7.0-cli
afin d'avoir la
version ligne de commande de PHP.
Attention, dans bien des distributions linux, en particulier debian/ubuntu, le
fichier de configuration php.ini
pour la version CLI de PHP, n'est pas le
même que celui utiliser par le module PHP d'Apache ou que celui de PHP-FPM.
Veillez donc à activer les extensions nécessaires à l’exécution de Jelix, à la
fois dans le fichier /etc/php5/apache2/php.ini
, ou /etc/php5/fpm/php.ini
,
et dans le fichier /etc/php5/cli/php.ini
. Avec PHP 7, ils peuvent se
trouver dans /etc/php/php7.0/
.
Notez que sous Debian et Ubuntu, la configuration de la plupart des extensions
sont dans des fichiers ini séparés, et stockés dans un répertoire conf.d
commun
à apache, fpm, cli etc.
Pour MAMP (MacOS X) ¶
Le logiciel MAMP met à votre disposition un programme PHP-Cli. Ce dernier n'est pas le seul PHP-Cli, en effet, Mac OS vous en fournit aussi un en installation standard. Le problème vient du fait que si vous utilisez la base de donnée MySQL de MAMP, le PHP-Cli par défaut n'est pas configuré pour vous permettre de vous connecter à cette dernière.
Voici comment faire pour mettre le PHP-Cli de MAMP par défaut dans le terminal :
- Ouvrez le fichier
.profile
qui se trouve à la racine de votre répertoire personnel (/Users/votre_login/
) - Modifiez la ligne où est défini la variable PATH, ou ajoutez la, le but
étant d'ajouter les chemins
/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php$VERSIONPHP/bin
dans cette variable PATH. Remplacez$VERSIONPHP
par la version PHP fournie par MAMP. Cela doit ressembler à quelque chose comme ceci (d'autres chemins peuvent être déjà défini, et il faut dans tout les cas mettre le $PATH à la fin)
export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php7.0/bin:$PATH
Si vous souhaitez mettre de nouveau le PHP-Cli de base par défaut, remettez la ligne comme avant ou supprimez-la.
Sous Windows ¶
Suivant les distributions (WAMP par ex), il est probable que le programme php.exe n'utilise pas la même configuration php.ini que le php avec apache. Il vous faudra certainement créer un fichier ini dans un répertoire attendu par php.exe et/ou activer les même extensions que la version apache de PHP. Vous risquez sinon d'avoir des erreurs du genre "fonction mysqli_connect inconnu" ou "impossible de se connecter".
Il faut de plus configurer votre système de manière à ce que php.exe soit accessible de n'importe quel répertoire :
- cliquer droit sur l'icône Poste de travail puis Propriétés
- dans la fenêtre Propriétés système cliquez sur l'onglet Avancé puis sur le bouton Variables d'environnement
- ensuite cliquez sur la "Variable Path" dans le bloc "Variables utilisateur" si vous êtes le seul utilisateur sur la machine ou le bloc "Variables système" s'il s'agit d'un serveur ou d'une machine avec plusieurs utilisateurs (afin que tous puissent bénéficier de cette configuration).
- Dans la valeur de la variable vous ajoutez le chemin vers le répertoire qui
contient
php.exe
. Ex:D:\wamp\bin\php\php7.0.0
(n'oubliez pas d'ajouter le ; à la fin si vous avez plusieurs variables path) - Validez en cliquant sur OK
- Fermez le tout et redémarrez.
Avec cette manipulation, vous pourrez exécuter php.exe
depuis n'importe
quel répertoire notamment pour pouvoir créer des applications en ligne de
commande avec Jelix.
Notes pour les utilisateurs d'un hébergement mutualisé ¶
Pour utiliser jelix-scripts sur un hebergement mutualisé, il faut que votre hébergeur propose un accès SSH.
Deux particularités sont à prendre en compte :
- en ligne de commande, la version de PHP par défaut n'est pas forcément la plus récente. Si possible, configurez votre hébergement pour avoir la version désirée, via par exemple l'interface de gestion de votre hébergeur.
- chez certains hebergeurs, parfois certaines variables superglobales ne sont
pas bien configurée. Par exemple
$_SERVER['SCRIPT_NAME']
peut être absent. Il faut alors créer la variable d'environnment qui correspond. Ex:export SCRIPT_NAME=dev.php
.
Consultez la documentation de votre hébergeur pour avoir un accés SSH et utiliser la bonne version de PHP.
Lancer dev.php ¶
Ouvrez donc une console (cmd.exe sous windows), allez dans le répertoire de
votre application, par exemple myapp/
:
Sous Linux/MacOS :
cd myapp/
Sous windows :
cd myapp\
Ensuite, vous pouvez exécuter une commande jelix selon cette syntaxe :
Sous Linux/MacOS :
php dev.php <command_name> [options] [parameters]
Sous windows :
php.exe dev.php <command_name> [options] [parameters]
Dans la suite du manuel, la syntaxe pour Linux sera utilisée dans les exemples.
Paramètre nom de commande ¶
Vous devez toujours appeler dev.php
avec un nom de "commande jelix",
accompagné éventuellement de paramètres et options.
Par exemple, pour avoir de l'aide sur toutes les commandes (et avoir la liste
des commandes possibles), utilisez la commande help
:
php dev.php help
La commande s'applique à l'application dans laquelle est situé le dev.php.
Utilisez la commande list
pour voir la liste de toutes les commandes disponibles :
php dev.php list
l'option -v ¶
Elle vous permet d'afficher les détails de ce qu'à fait la commande après son
exécution. Par défaut, une commande n'affiche rien dans la console, sauf si il
y a des erreurs. Si vous voulez afficher les détails à chaque fois, vous pouvez
modifier la configuration de jelix-scripts avec l'option verboseMode=true
.
Voir ci-dessous.
Changer la configuration par défaut ¶
Les commandes de création d'application, de module etc respectent une arborescence précise. Mais ce n'est pas forcément celle que vous voulez utiliser. Il y a aussi des informations qui sont insérées dans les fichiers crées, notamment dans les commentaires d'en-tête, comme par exemple le nom de l'auteur, le site web etc. Vous pouvez changer cela.
Pour ce faire, dans lib/jelix-scripts/templates/
, il y a un fichier
jelix-scripts.ini
. Vous pouvez le copier à deux endroits différents, en le
renommant .jelix-scripts.ini
:
- soit dans l'un des répertoires parent de l'application
- soit dans votre répertoire personnel (
/home/votrelogin/
sous linux,c:\Users\votrelogin\
sous windows 7)
Jelix cherchera ce fichier d'abord dans le répertoire courant, puis dans les repertoires parents, et ensuite dans votre répertoire personnel. Cela permet d'avoir des fichiers différents pour chaque projet.
Modifiez-le en changeant les valeurs voulues.
Vous pouvez aussi avoir des paramètres différents en fonction des applications dans un même fichier. Créez simplement une section dans ce fichier ini, ayant pour nom celui du répertoire de l'application
[myapp]
infoCopyright = 2020 My Company
Liste des commandes disponibles ¶
Voici une liste non exhaustive des commandes jelix-scripts
- Utilisation Générale :
php dev.php COMMANDE [-v] [OPTIONS] [PARAMETRES]
- Création d'un module
php dev.php module:create <MonModule>
- Création d'un dao
php dev.php module:create-dao <MonModule> <MonDao> <MaTable>
- Création d'une classe basé sur un dao
php dev.php module:create-class-dao <MonModule> <MaClasse> <MonDao>
- Création d'un form (vide ou depuis un dao avec ou sans les locales)
php dev.php module:create-form <MonModule> <MonForm> <MonDao>
- Création d'une zone (avec ou sans son template)
php dev.php module:create-zone [--notpl] <MonModule> <MaZone> [<MonTemplate>]
- Création d'un CRUD, cette commande va créer un dao, un form et le contrôleur CRUD
php dev.php module:create-dao-crud <le_module> <la_table> <le_nom_du_controleur>
Tapez php dev.php help
pour avoir l'aide générale ou php dev.php list
pour afficher la liste complète des commandes et le détails de leurs paramètres.
D'autres chapitres du manuel vous expliqueront l'utilisation de certaines commandes.