Etkileşimli kabuk
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:
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
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.
Etkileşimli kip
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.