PHP ile CLI ( Komut Satırı ) Programlama

Framework ( Laravel, Symfony, TitanPHP ) gibi ve benzeri kullanan arkadaşlarımızların bildiği gibi PHP’yi konsoldan yöneterek bir çok işimizi hızlı ve basit bir şekilde yapabiliyoruz. Bununla ilgili bir çok döküman ve saire mevcut. Fakat bu yapıyı kendi Frameworkümüze yada PHP’yi konsoldan yönetmemiz gerektiğinde nasıl yapabilirim diyen arkadaşlar için gelecek.

Not : Windows üzerinde çalışıyorsanız sistem değişkenlerinde PHP yolunun ekli olduğundan emin olun. Altta verdiğim yolu kendinize göre düzenleyin.

C:\bin\php\php5.6.40

Bu işlemi yaptıktan sonra konsola php -version komutunu yazın. Eğer cevap size altta verdiğim gibi dönüyorsa başarılı yapmışsınız demektir.

PHP 5.6.40 (cli) (built: Jan 9 2019 15:10:36)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Komut İstemi

Ardından ana dizine gidip bir dosya oluşturalım. Ben adını oxyn yapıyorum. Normal bir şekilde php etiketleri açarak artık programlayabiliriz.

<?php echo 'Merhaba PHP CLI Programlama'; ?>

Ve bunu test edelim. CMD Komut satırına giderek ( Gitmeyi bilmeyenler için Windows + R tuşu basın. Çalıştır gelecektir karşınıza. Ardından CMD yazıp enter tuşuna basın. ) OXYN dosyamızın bulunduğu dizine giderek şu komutu verin.

php oxyn

Komutu çalıştırdıktan sonra karşımıza çıktıysa başardık demektir 🙂

Merhaba PHP CLI Programlama

Komut İstemi

Peki buna nasıl parametre verebilir ve bu parametreleri okuyabiliriz sorusuna cevap ise

php oxyn parametre1 parametre2

şeklinde istediğiniz kadar parametre verebilirsiniz. Okuması ise php dosyamızda

print_r($_SERVER['argv']);

şeklinde yapabilirsiniz. Ayrıca mesela işleme devam etmek istermisiniz ? tarzında kullanıcıdan onay alma gibi durumlarda ise altta verdiğim örnekteki gibi komutları kullanabilirsiniz.

Örnek

<?php  
  echo "Merhaba sen oxyn'misin ? ";

  $oku = fopen ("php://stdin","r");
  $satir = fgets($oku);

  if(trim($satir) != 'evet'){
     echo "O zaman hoş geldin!\n";
     exit;
  }

  echo "\n";
  echo "Hoş geldin.\n";

Evet yukarıda ki örneğimizi çalıştırdığımız zaman “Merhaba sen oxyn’misin ?” diye konsolda bir yazı çıktı ve bizden bir cevap bekledi. Eğer evet yazdıysanız “O zaman hoş geldin!” diye cevap verdi ve programı durdurdu. Eğer başka bir yazı geldiyse veya boş geçildiyse o zaman “Hoş geldin” şeklinde bir cevap döndürdü. Bunun gibi bir çok şey yapabilirsiniz. İşte bu kadar basit. İlerleyen zamanlarda kendi yazmış olduğum framework’e böyle bir alt yapı katmayı düşünüyorum.

Umarım anlattıklarımın bir faydası olmuştur. Yakında github’a eklemeyi düşünüyorum örnekleri. Şimdilik hoşçakalın. Bir daha ki yazımızda görüşmek üzere. Kendinize iyi bakın.

Bu arada aklınıza takılan bir soru olursa lütfen yazmaktan çekinmeyin. Elimden geldiğince sizlere yardımcı olmaya çalışırım.