Chapitre: Utiliser jelix-scripts
« Installation de l'archive de jelix | ^ Mise en route | Créer une application » |
− Table des matières
Jelix est fourni avec plusieurs scripts, dont
lib/jelix-scripts/createapp.php
, qui permet de créer facilement une
nouvelle application, et cmd.php
dans l'application crée, 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 afin d'avoir la version ligne de commande de PHP.
Attention, dans bien des distributions linux, en particulier debian/ubuntu, le
fichier de configuration de PHP php.ini
n'est pas le même pour le PHP
d'apache que pour la version CLI de PHP. Veillez donc à activer les extensions
nécessaires à l’exécution de Jelix, à la fois dans le fichier
/etc/php5/apache2/php.ini
et dans le fichier /etc/php5/cli/php.ini
(les chemins sont valables pour debian/ubuntu). 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 et cli.
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/php5.3/bin
dans cette variable PATH. 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/php5.3/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 mysql_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\php5.2.6
(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 OVH mutualisé ¶
Ce paragraphe concerne les utilisateurs hébergeant leur site web sur un 90plan par exemple.
Deux particularités sont à prendre en compte :
- en ligne de commande, la version de PHP par défaut semble être la plus
ancienne, il faut donc appeler la plus récente (i.e.
php.ORIG.5.2.9
) soit manuellement, soit par un alias du BASH, soit par un script - la variable superglobale
$_SERVER['SCRIPT_NAME']
ne semble pas être diffusée ce qui gêne à l'exécution du script pour la création des modules
Une solution simple répondant aux deux problématiques est la suivante. Il faut
juste créer un script BASH jelix.sh
auquel on donne les droits d'exécution
et avec le contenu suivant :
#!/bin/bash
export SCRIPT_NAME=cmd.php
php.ORIG.5.2.9 cmd.php $*
Ensuite on appelle ce script à la place de la commande habituelle @@F@php cmd.php ...@@.
Lancer cmd.php ¶
Ouvrez donc une console (cmd.exe sous windows), allez dans le répertoire de
votre application, par exemple myapp/
:
Sous linux/mac :
cd myapp/
Sous windows :
cd myapp\
Ensuite, vous pouvez exécuter une commande jelix selon cette syntaxe :
Sous windows :
> php.exe cmd.php command_name [options] [parameters]
Sous linux :
$ php cmd.php command_name [options] [parameters]
Dans la suite du manuel, la syntaxe pour linux sera utilisée dans les exemples.
command_name ¶
Vous devez toujours appeler cmd.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 cmd.php help
La commande s'applique à l'application dans laquelle est situé le cmd.php.
l'option -ep ¶
Quand une application a plusieurs points d'entrées (index.php, admin.php etc..), il est utile pour certaines commandes d'indiquer pour quel point d'entrée elle doit s'appliquer. Il faut alors indiquer le nom de ce point d'entrée avec l'option "-ep" :
php cmd.php installmodule -ep admin foo
Cela installera le module foo, uniquement pour le point d'entrée admin de l'application.
Le point d'entrée doit être déclaré dans le fichier project.xml de l'application pour que cela fonctionne.
l'option -v ¶
C'est une option valable pour toutes les commandes depuis la version 1.3.3. 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 les
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
. Copiez le dans votre répertoire personnel
(/home/votrelogin/
sous linux, c:\Users\votrelogin\
sous windows) en
le renommant .jelix-scripts.ini
. Modifiez-le ensuite en changeant les
valeurs voulues.
Vous pouvez aussi avoir des paramètres différents en fonction des applications. Créez simplement une section dans ce fichier ini, ayant pour nom celui du répertoire de l'application
[myapp]
infoCopyright = 2011 My Company
Liste des commandes disponibles ¶
Voici une liste non exhaustive des commandes jelix-scripts
- Utilisation Générale :
php cmd.php COMMANDE [-v] [-ep ENTRYPOINT] [OPTIONS] [PARAMETRES]
- Création d'un module
php cmd.php createmodule [MonModule]
- Création d'un dao
php cmd.php createdao [MonModule] [MonDao] [MaTable]
- Création d'une classe basé sur un dao
php cmd.php createclassfromdao [MonModule] [MaClasse] [MonDao]
- Création d'un form (vide ou depuis un dao avec ou sans les locales)
php cmd.php createform [MonModule] [MonForm] [MonDao]
- Création d'une zone (avec ou sans son template)
php cmd.php createzone [-notpl][MonModule] [MaZone] [MonTemplate]
- Création d'un CRUD, cette commande va créer un dao, un form et le contrôleur CRUD
php cmd.php createdaocrud le_module la_table le_nom_du_controleur