Etkileşimli kabuk

PHP --with-readline seçeneği ile derlenmişse, CLISAPI-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.promptphp.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:

- cli.prompt öcelemleri
ÖncelemAçıklama
\e Komut istemine renk eklemek için kullanılır. Örnek: \e[032m\v \e[031m\b \e[34m\> \e[0m
\vPHP 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 CLISAPI ç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 CLISAPI çağrısına eşdeğerdir.

PHP 8.1.0 itibariyle, -a seçeneği kullanılarak yapılan bir CLISAPI çağrısı, readline eklentisi kullanılabilir değilse başarısız olur.

To Top