PHP --with-readline seçeneği ile derlenmişse, CLI SAPI -a seçeneği kullanıldığında etkileşimli bir kabuk açar. PHP 7.1.0'dan itibaren etkileşimli kabuk, readline eklentisi etkinse, Windows altında da kullanılabilmektedir.
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 statik 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.
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.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:
| Ö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.
Readline eklentisi kullanılabiliyorsa PHP 8.1.0 öncesinde,
-a seçeneği kullanılarak yapılan bir CLI SAPI çağrısı
etkileşimli kipe girilmesini sağlardı. Bu kipte, eksiksiz bir PHP
betiğinin standart girdiden verilmesi gerekir. POSIX'te
CRTL+d veya Windows'ta CTRL+z ve
ardından ENTER tuşlanmasıyla bu betik çalıştırılır.
Bu temelde -a seçeneği kullanmaksızın yapılan bir
CLI SAPI çağrısına eşdeğerdir.
PHP 8.1.0 itibariyle, -a seçeneği kullanılarak yapılan bir CLI SAPI çağrısı, readline eklentisi kullanılabilir değilse başarısız olur.