Depuis PHP 5.1.0, le CLI SAPI fournit un shell intéractif lors de l'utilisation de l'option -a si PHP a été compilé avec l'option --with-readline .
En utilisant le shell interactif, vous avez la possibilité de taper du code PHP et qu'il soit exécuté directement.
Exemple #1 Exécution de code en utilisant le shell interactif
$ php -a Interactive shell php > echo 5+8; 13 php > function addTwo($n) php > { php { return $n + 2; php { } php > var_dump(addtwo(2)); int(4) php >
Le shell interactif fournit également une auto-complétion des fonctions, des constantes, des noms de classes, des variables, des appels aux méthodes statiques, et des constantes de classes en utilisant la touche de tabulation.
Exemple #2 Auto-complétion en utilisant la touche de tabulation
Le fait de presser deux fois la touche de tabulation lorsqu'il y a plusieurs complétions possibles affichera une liste de ces complétions :
php > strp[TAB][TAB] strpbrk strpos strptime php > strp
Lorsqu'il n'y a qu'une seul complétion possible, presser la touche de tabulation une seule fois complétera le reste sur la même ligne :
php > strpt[TAB]ime(
La complétion fonctionnera aussi pour les noms qui ont été définis lors de la session courante du shell interactif :
php > $fooThisIsAReallyLongVariableName = 42; php > $foo[TAB]ThisIsAReallyLongVariableName
Le shell interactif stocke votre historique et peut y accéder en utilisant les touches haut et bas. L'historique est sauvegardé dans le fichier ~/.php_history.
Depuis PHP 5.4.0, le CLI SAPI fournit 2 nouvelles directives du php.ini :
cli.pager
et cli.prompt
.
La directive cli.pager
permet la définition d'un programme
externe (comme less) à utiliser comme pager pour la sortie
au lieu d'afficher directement sur l'écran. La directive
cli.prompt
autorise la modification du prompte
php >.
En PHP 5.4.0, il est également possible de définir des directives du php.ini dans un shell interactif en utilisant des notations raccourcies.
Exemple #3 Définition de directives du php.ini dans un shell interactif
La définition de la directive cli.prompt
:
php > #cli.prompt=hello world :> hello world :>
En utilisant des backticks, il est possible d'exécuter du code PHP dans le prompte :
php > #cli.prompt=`echo date('H:i:s');` php > 15:49:35 php > echo 'hi'; hi 15:49:43 php > sleep(2); 15:49:45 php >
Définition du pager à less :
php > #cli.pager=less php > phpinfo(); (sortie affichée avec less) php >
La directive cli.prompt
supporte quelques séquences d'échappements :
Séquence : | Description : |
---|---|
\e | utilisé pour ajouter des couleurs au prompte. Exemple : \e[032m\v \e[031m\b \e[34m\> \e[0m |
\v | La version de PHP. |
\b | Indique dans quel bloc de PHP nous nous trouvons. Par exemple, /* permet d'indiquer que nous sommes dans un commentaire multi-lignes. Le scope externe est représenté par php. |
\> | Indique le caractère utilisé pour le prompte. Par défaut, ce sera >, mais peut être modifié lorsque le shell se trouve dans un bloc indéterminé ou dans une chaîne de caractères. Les caractères possibles sont : ' " { ( > |
Note:
Les fichiers inclus via auto_prepend_file et auto_append_file sont analysés dans ce mode, mais avec quelques restrictions - i.e. les fonctions doivent avoir été définies avant l'appel.
Note:
L'autoloading n'est pas disponible si vous utilisez PHP en mode CLI interactif.