Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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 :

  1. 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
  2. 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