Différences entre CLI et CGI
PHP peut fonctionner dans différents environnements. L'environnement le plus courant est CGI
, qui s'exécute lorsque PHP traite une requête HTTP. Cependant, il est également possible d'exécuter un script PHP à partir du terminal. Dans ce cas, il s'agit d'une tâche dite CLI (Command-line interface).
Les différences les plus importantes entre CLI et CGI
- Contrairement à
CGI SAPI
,CLI
n'écrit pas d'en-tête sur la sortie par défaut. - Il y a certaines directives
php.ini
qui sont remplacées dansCLI SAPI
parce qu'elles n'ont pas de sens dans un environnement shell :-
html_errors
: La valeur par défaut de CLI estFALSE
. -
implicit_flush
: la valeur par défaut de l'interface CLI estTRUE
. -
max_execution_time
: la valeur par défaut en CLI est0
(illimité) -
register_argc_argv
: la valeur CLI par défaut estTRUE
.
-
- Le script peut prendre des arguments en ligne de commande ! La variable
$argc
vous donne le nombre d'arguments passés à l'application. Et le champ$argv
vous donne un tableau d'arguments réels - Il y a 3 nouvelles constantes définies pour l'environnement shell :
STDIN
,STDOUT
,STDERR
. Tous sont des gestionnaires de fichiers pour le périphérique shell correspondant. Par exemple,STDIN
est un gestionnaire de fichier pourfopen('php://stdin', 'r')
. Vous pouvez donc lire une ligne deSTDIN
comme ceci :$strLine = trim(fgets(STDIN));
. LeSTDIN
est déjà défini pour vous en utilisant lePHP CLI
. - Le PHP CLI ne change pas le répertoire courant en répertoire du script en cours d'exécution. Le répertoire courant du script est le répertoire dans lequel vous exécutez la commande PHP CLI.
- Il y a un certain nombre d'options UTILES disponibles pour le CLI de PHP. Ce qui vous permet d'obtenir des informations précieuses sur votre configuration php, votre script php ou de l'exécuter dans différents modes.
- Dans PHP 5, il y a eu quelques changements dans les noms de fichiers CLI et CGI. Dans PHP 5, la version CGI a été renommée en
php-cgi.exe
(anciennementphp.exe
) et la version CLI est maintenant située dans le répertoire principal (anciennementcli/php.exe
). - Un nouveau mode a également été introduit dans PHP 5 :
php-win.exe
. C'est équivalent à la version CLI, sauf que dansphp-win
rien n'est imprimé, et ne fournit donc pas de console (aucune "boîte à dos" n'est affichée à l'écran). Ce comportement est similaire à celui dePHP GTK
.
Jan Barášek En savoir plus sur l'auteur
L'auteur travaille comme développeur principal et architecte logiciel à Prague. Il conçoit et gère de grandes applications web que vous connaissez et utilisez. Depuis 2009, il a acquis une grande expérience qu'il transmet par le biais de ce site web.
Je serai heureux de vous aider:
author-contact