Różnice między CLI a CGI
PHP może działać w różnych środowiskach. Najbardziej powszechnym środowiskiem jest CGI
, które jest uruchamiane, gdy PHP przetwarza żądanie HTTP. Możliwe jest jednak również uruchomienie skryptu PHP z poziomu Terminala, w tym przypadku jest to tzw. zadanie CLI (Command-line interface).
Najważniejsze różnice między CLI a CGI
- W przeciwieństwie do
CGI SAPI
,CLI
domyślnie nie zapisuje żadnych nagłówków na wyjściu. - Istnieją pewne dyrektywy
php.ini
, które są nadpisane wCLI SAPI
, ponieważ są bez znaczenia w środowisku powłoki:-
html_errors
: Domyślnie CLI ustawia wartośćFALSE
. -
implicit_flush
: domyślną wartością CLI jestTRUE
. -
max_execution_time
: domyślną wartością CLI jest0
(bez ograniczeń) -
register_argc_argv
: domyślną wartością CLI jestTRUE
.
-
- Skrypt może przyjmować argumenty z wiersza poleceń! Zmienna
$argc
podaje liczbę argumentów przekazanych do aplikacji. Pole$argv
zawiera tablicę rzeczywistych argumentów - Zdefiniowano 3 nowe stałe dla środowiska powłoki:
STDIN
,STDOUT
,STDERR
. Wszystkie są urządzeniami obsługującymi pliki dla odpowiedniego urządzenia powłoki. Na przykład,STDIN
jest obsługą pliku dlafopen('php://stdin', 'r')
. Możesz więc odczytać linię zSTDIN
w następujący sposób:$strLine = trim(fgets(STDIN));
. NumerSTDIN
jest już zdefiniowany za pomocąPHP CLI
. - PHP CLI nie zmienia katalogu bieżącego na katalog wykonywanego skryptu. Bieżącym katalogiem dla skryptu będzie katalog, w którym uruchomiono polecenie PHP CLI.
- W PHP CLI dostępnych jest wiele użytecznych opcji. Dzięki temu można uzyskać cenne informacje o konfiguracji php, skrypcie php lub uruchomić go w różnych trybach.
- W PHP 5 wprowadzono pewne zmiany w nazewnictwie plików CLI i CGI. W PHP 5 wersja CGI została przemianowana na
php-cgi.exe
(dawniejphp.exe
), a wersja CLI znajduje się teraz w katalogu głównym (dawniejcli/php.exe
). - W PHP 5 wprowadzono także nowy tryb:
php-win.exe
. Jest to odpowiednik wersji CLI, z tą różnicą, że wphp-win
nic nie jest drukowane, a więc nie ma konsoli (na ekranie nie jest wyświetlane "okienko dosowe"). To zachowanie jest podobne do zachowaniaPHP GTK
.
Jan Barášek Więcej o autorze
Autor pracuje jako starszy programista i architekt oprogramowania w Pradze. Projektuje i zarządza dużymi aplikacjami internetowymi, które znasz i używasz. Od 2009 r. zdobył bogate doświadczenie, które przekazuje za pośrednictwem tej strony internetowej.
Chętnie pomogę:
Kontakt