• Şuradasınız
  • Anasayfa
  • PHP
  • Laravel ve Artisan ile Komut Satırı (Commands) İşlemleri

Laravel ve Artisan ile Komut Satırı (Commands) İşlemleri

PHP, genellikle Apache gibi bir web sunucusu aracılığı ile tarayıcıda çalışan uygulamalar geliştirmek için kullanılır. Fakat PHP ile konsol uygulamaları geliştirmek de mümkündür. Apache sadece uygulamanın tarayıcılar üzerinden çalıştırılabilmesine olanak sağlar.

Laravel, web uygulaması geliştirmenin yanı sıra konsol uygulaması geliştirmeye de olanak sağlayan bir PHP frameworküdür. Laravelin bu “Komut Satırı Arayüzüne (CLI)” ise Artisan denir.

Artisan ile kullanabileceğiniz belli başlı komutlar vardır. Kullanabileceğiniz artisan komutlarını listelemek için aşağıdaki komutu deneyin.

php artisan list

Konsoldan Artisan komutlarını kullanabilmek için Laravelin kök dizinine gidip komutu çalıştırmalısınız. Yani artisan adlı dosyanın olduğu dizinde komutları çalıştırın. Veya full path verin.

Artisan ile mevcut komutların haricinde, konsoldan çalıştırabileceğiniz yeni komutlar oluşturabilir ve kullanabilirsiniz.

Artisan Komut (Command) Oluşturma

Artisan yeni komutlar oluşturabilmek için command:make komutunu kullanıyor.

php artisan command:make helloWorldCommand

Artisan, bu komutu çalıştırdığınızda uygulamanın app/commands dizinine sizin komutunuzu tanımladığı bir sınıf oluşturacaktır.

//..PROJECT-FOLDER/app/commands/helloWorldCommand.php

Bu komutu, aşağıdaki dizine de kaydetmemiz gerekiyor.

//..PROJECT-FOLDER/app/start/artisan.php
Artisan::add(new helloWorldCommand);

Bu işlemlerin ardından komut oluşturuldu, gidip komutun ismini ve açıklamasını değiştirebilirsiniz.

// app/commands/helloWorldCommand.php
protected $name = 'helloWorld';
protected $description = 'Komutun açıklaması';

Komutun ismini değiştirdikten sonra aşağıdaki gibi çağırabilirsiniz;

php artisan helloWorld

Bu sınıfta default olarak oluşturulan fonksiyonlardan da bahsetmek gerekir.

fire() Fonksiyonu

fire() fonksiyonu komutun ne yapacağının tanımlandığı yerdir. Yani konsoldan komut çalıştırıldığında fire() fonksiyonu içinde ne varsa o işlemler gerçekleşecektir.

getArguments() Fonksiyonu

getArguments() fonksiyonu, komutu konsoldan çağırırken parametre kullanarak çağırmanızı sağlar.

php artisan helloWorld johndoe

Eğer argüman kullanmayacaksanız InputArgument değerini OPTIONAL yapınız.

protected function getArguments()
{
    return array(
        array('action', InputArgument::OPTIONAL, 'Parametre'),
    );
}

Verdiğiniz parametreyi fire() fonksiyonunda ise şu şekilde kullanabilirsiniz.

public function fire()
{
    echo "Hello World !";
    echo " " . $this->argument('action');
}

İşin teknik kısmı bu şekildeydi. Elbette daha fazlası da mevcut. Buradan bakabilirsiniz. Teknik kısımdan ziyade biraz da geyik kısmından bahsetmek istiyorum.

Oluşturacağınız komut sınıflarını, laravelin tüm özelliklerinden, etinden, sütünden yararlanarak oluşturabilirsiniz. En önemlisi komut sınıflarının içinde Eloquent ORMyi kullanabilirsiniz.

Mesela ortada request yapabileceğiniz bir web servisi olduğunu varsayın. Bir URL’ye istek yapacak ve dönen tüm veriyi parse edip (ayrıştırıp) veri tabanı tablolarınıza yazacaksınız. Kara kara düşünmenize gerek yok.

Kendinize bir Artisan komut sınıfı tanımlarsınız, verileri CURL ile çekersiniz ve Eloquent ile tablolara yazarsınız. İşleriniz inanılmaz derecede hızlanır.

Geliştirdiğiniz uygulama hem konsoldan çalışıyor hem de web sunucusundan çalışıyor ise, mesela yukarıda bahsettiğim web servisten çekilen verileri tablolara yazıp kullanıcılara gösteriyorsanız, laravel kullanmak 2 kat daha mantıklı oluyor. Çünkü Eloquent ile hem verileri tablolara yazmak çok kolay hem de verileri çekip kullanıcı arayüzünde göstermek çok kolay.

İşte bir framework bu yüzden konsol uygulaması geliştirmeye de destek vermeli.

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla