Codeigniter komut satırı arayüzü

CodeIgniter ile hazırladığınız projelerinizi sadece internet tarayıcısı ile değil, komut satırı ekranından da kullanabilme ihtiyacı zaman zaman olabilmektedir.

Örneğin, belirli aralıklarla rapor göndermeniz ya da yedek almanız gerekebilir. Bu gibi durumlarda yazdığınız kodu tetiklemek üzere Linux makinelerde Cron Job, Windows makinelerde ise Task Scheduler üzerine görev tanımlanır.

Tanımlanan görev zamanı geldiğinde tetikleyici kodun çalışması için komut satırından başlatma gerekliliği vardır. İşte bu durumda CodeIgniter 2.0 versiyonundan itibaren standart paket ile dağıtıma sokulan CLI kütüphanesi kullanılır. Komut satırından çalıştırmak için bir deneme yapalım. Applications/controllers dizini altına tools.php isimli bir controller dosyası açalım. İçeriği de şöyle olsun:

class Tools extends CI_Controller {
public function message($to = 'World') { echo "Hello {$to}!".PHP_EOL;
}
}

Normalde bu kodu çalıştırmak için internet tarayıcısı üzerinden şu adres satırını tıklarız:

example.com/index.php/tools/message/to

Aynı kodu çalıştırmak için ise Mac ya da Linux makinelerde Terminal programını, Windows makinelerde ise RUN>cmd yolunu kullanarak şu kodu yazarız:

$ cd /path/to/project;
$ php index.php tools message

Eğer, değişken göndermemiz gerekiyorsa da method isminden sonra parametre girmemiz yeterlidir:

$ php index.php tools message "John Smith"

CodeIgniter 2.0 versiyonlarından önceki versiyonları kullananlar için ise durum biraz daha farklıdır. Bu işlem için CLI kütüphaneleri yazılmış olsa da benim tercih ettiğim en basit yöntem, projenin kök dizinine (index.php dosyasının olduğu yere) bir php dosyası eklemek. Örneğin, adı mycronjob.php dosyamız olsun. İçeriği ise:

$_GET["/tools/message"] = null;  
require “index.php”;

Sitenizin config dosyasında “uri_protocol” değerinin AUTO olmasında fayda vardır. Ayrıca bazı durumlarda $_GET[“/tools/message”] = null; cümlesi yerine,

$_SERVER["REQUEST_URI"] = "tools/message";

cümlesi kullanılınca çalışması olasıdır.

Yanıt Gönder