Etkileşimli kabuk

PHP 5.1.0'dan itibaren, PHP --with-readline seçeneği ile derlenmişse, CLI SAPI -a seçeneği kullanıldığında etkileşimli bir kabuk açar.

Etkileşimli kabuğu kullanarak PHP kodu yazabilir ve bunları doğrudan çalıştırabilirsiniz.

Örnek 1 - Etkileşimli kabuk kullanarak kod çalıştırmak

$ php -a
Interactive shell

php > echo 5+8;
13
php > function ikiEkle($n)
php > {
php { return $n + 2;
php { }
php > var_dump(ikiEkle(2));
int(4)
php >

Etkileşimli kabuk ayrıca, işlevler, sabitler, sınıf isimleri, değişkenler duruk yöntem çağrıları ve sınıf sabitleri için sekme ile kod tamalama özelliklerine sahiptir.

Örnek 2 Kod tamamlama

Sekme tuşuna iki kere basarak yazdığınız harflerle başlayan anahtar sözcükleri listeleyebilirsiniz:

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Olası tek seçenek olduğunda sekme tuşuna ilk basışınızda sözcük aynı satırda tamamlanır:

php > strpt[TAB]ime(

Tamamlama, bulunduğunuz etkileşimli kabuk ortamında tanımlanmış isimler için de çalışacaktır::

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Etkileşimli kabukta yukarı ve aşağı ok tuşlerını kullanarak geçmiş üzerinde dolaşabilirsiniz. Geçmiş ~/.php_history dosyasına kaydedilir.

PHP 5.4.0'dan itibaren, cli.pager ve cli.prompt php.ini değişkenleri devreye girmiştir. cli.pager ile çıktıyı ekranda göstermek yerine çıktıyı sayfalayacak bir programda (less gibi) göstermek mümkündür. cli.prompt ile php > çıktısını değiştirebilirsiniz.

PHP 5.4.0'dan itibaren, php.ini ayarlarını etkileşimli kabukta bir kısayol ile değiştirmek de mümkündür.

Örnek 3 Etkileşimli kabukta php.ini ayarlarını değiştirmek

cli.prompt ile:

php > #cli.prompt=hello world :>
hello world :>

Ters tırnakları kullanarak komut isteminde kod çalıştırabilirsiniz:

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 >

Sayfalayıcı olarak less belirtmek:

php > #cli.pager=less
php > phpinfo();
(çıktı less içinde gösterilir)
php >

cli.prompt içinde bir kaç öncelem belirtilebilir:

- cli.prompt öcelemleri
Öncelem Açıklama
\e Komut istemine renk eklemek için kullanılır. Örnek: \e[032m\v \e[031m\b \e[34m\> \e[0m
\v PHP sürümü.
\b Neyin içindekinin engelleneceğini belirtir. Örneğin, çok satırlı bir açıklama içinde olmayı belirtmek için: /* Dış kapsam php tarafından belirtilir.
\> Komut istemi karakterini belirtir. By default this is > öntanımlı olsa da kabuk sonlandırılmamış bir dizge veya blok içindeyse bu değişir. Olası karakterler: ' " { ( >

Bilginize:

auto_prepend_file ve auto_append_file ile içselleştirilen dosyalar bu kipte bazı sınırlamalarla çözümlenebilir; örneğin çağrılmadan önce işlevler bu dosyalarda tanımlanabilir.

Bilginize:

PHP CLI etkileşimli kipte kullanılıyorsa Özdevinimli Sınıf Yükleme kullanılamaz.