Selamlar, bu yazımda laravel üzerinde command kullanımını anlatacağım, command nedir ? neden ve nasıl kullanılır ?


Command, laravelde artisan komutları kullandığımız cli üzerinde kendi komutumuzu oluşturmamıza yarar, örneğin konsola php artisan cache:clear yazdığınızda cache temizleme işlemi gerçekleşir, siz de aynı şekilde php artisan ile birlikte kendi komutunuzu kullanabilirsiniz. Bu komut içerisinde herhangi bir işleminizi gerçekleştirebilirsiniz. Örneğin her o komutu yazdığınızda veritabanındaki herhangi bir tabloya yeni bir kayıt ekleyen komut oluşturabiliriz. ve php artisan kayit:olustur dediğimiz takdirde bu komut çalışır. Siz burada kendi isteğiniz ve ihtiyacınıza göre bir komut oluşturabilirsiniz. İlk adım olarak konsolu açıp

php artisan make:command TestCommand

yazarak gerekli dosyaların oluşturulmasını sağlayalım. App\Console\Commands altında dosyamızın oluştuğunu görebiliriz. Oluşturulan dosya bu şekilde karşınıza gelecek.

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;


class TestCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'komut:calistir';


    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Komutun işlevini anlatan kısa bir açıklama';


    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }


    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        // Komut çalıştırıldığında çalışacak kodlar.
    }
}

Bu dosyamız oluştuktan sonra, gerekli yerleri dolduruyoruz, komutun isminin belirlenmesi, çalıştığında çalışacak kodların ayarlanması ve bu komutu kernele tanımlamak.

App\Console\Kernel.php dosyasında

protected $commands = [
        //
];

alanı içerisine kendi yazdığımız commandın yolunu belirtiyoruz.

protected $commands = [
    'App\Console\Commands\TestCommand'    
];

olarak tanımladım. Daha sonra tanımlama işlemini doğrulamak amacıyla

php artisan list

yazıp commandımın görünürlüğünü kontrol ediyorum.


gördüğünüz gibi command burada görünüyor. Şuanda commandı çalıştırıp bunu deneyebilirim. Örnek olarak users tablosuna bir veri ekleyecek olursak handle methodunu şu şekilde doldurup deneyelim.


public function handle()
{
    DB::table('users')->insert(
        ['email' => '[email protected]', 'password' => \Hash::make(1234),'name' => 'Fatih']
    );
}

Şimdi komutumuzu çalıştırabiliriz.

php artisan komut:calistir

yazıp çalıştırdıktan sonra veritabanımıza bakalım.


veri başarıyla kayıt oldu. İşlem bu kadar basit. Siz de ihtiyacınıza göre command oluşturup kullanabilirsiniz.


İyi çalışmalar.