Shell Interactif
  
  
   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.
   Depuis PHP 7.1.0 le shell intéractif est également disponible sur Windows,
   si l'extension readline est activée.
  
  
  
   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 autocomplé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.
   Depuis PHP 8.4.0, le chemin vers le fichier d'historique peut être défini en utilisant la
   variable d'environnement PHP_HISTFILE.
  
  
  
   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 seule complétion possible, presser la touche de tabulation
    une seule fois complétera le reste sur la même ligne :
   
    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.
  
  
  
   Le CLI SAPI fournit 2 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 >.
  
  
  
   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équences d'échappements de cli.prompt
    
     
      
       | 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 multilignes. Le scope externe est représenté
        parphp. | 
      
       | \> | 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.
   
  
  
   Interactive mode
   
    Si l'extension readline n'est pas disponible, antérieur à PHP 8.1.0,
    invoquer le CLI SAPI avec l'option -a fournit le mode intéractif.
    Dans ce mode, un script PHP complet est supposé d'être donnée via STDIN,
    et après l'interruption
    avec
    
     CTRL
     +D
    
    (POSIX) ou
    
     CTRL
     +Z
    
    suivi de ENTER (Windows), ce script sera évalué.
    Ceci est basiquement identique à invoquer le CLI SAPI sans l'option -a.
   
   
    À partir de PHP 8.1.0, invoquer le CLI SAPI avec l'option -a
    échoue, si l'extension readline n'est pas disponible.