Artisan, Laravel ile birlikte gelen komut satırı arabirimidir. Artisan, uygulamanızın kök dizininde artisan
betiği olarak bulunur ve uygulamanızı oluştururken size yardımcı olabilecek bir dizi yararlı komut sunar. Tüm mevcut Artisan komutlarının bir listesini görmek için list
komutunu kullanabilirsiniz:
php artisan list
Her komut ayrıca "yardım" ekranını da içerir. Bu ekran, komutun mevcut argümanlarını ve seçeneklerini görüntüler ve açıklar. Yardım ekranını görmek için komut adının önüne help
ekleyin:
php artisan help migrate
Yerel geliştirme ortamınız olarak Laravel Sail'i kullanıyorsanız, Artisan komutlarını çağırmak için sail
komutunu kullanmayı unutmayın. Sail, Artisan komutlarını uygulamanızın Docker konteynerleri içinde yürütecektir:
./vendor/bin/sail artisan list
Laravel Tinker, Laravel çerçevesi için güçlü bir REPL (Read-Eval-Print Loop) aracıdır ve PsySH paketi tarafından desteklenmektedir.
Tinker, tüm Laravel uygulamalarıyla varsayılan olarak gelir. Ancak, daha önce uygulamanızdan kaldırdıysanız Tinker'ı Composer aracılığıyla yükleyebilirsiniz:
composer require laravel/tinker
Tinker, Eloquent modellerinizden, işlerden, etkinliklerden ve daha fazlasından dahil olmak üzere tüm Laravel uygulamanızla komut satırında etkileşimde bulunmanıza olanak tanır. Tinker ortamına girmek için tinker Artisan komutunu çalıştırın:
php artisan tinker
Tinker'ın yapılandırma dosyasını yayınlamak için vendor:publish
komutunu kullanabilirsiniz:
php artisan vendor:publish --provider="Laravel\Tinker\TinkerServiceProvider"
dispatch Yardımcı Fonksiyonu ve dispatch Yöntemi Dispatchable sınıfının dispatch yardımcı fonksiyonu ve dispatch yöntemi işi sıraya koymak için çöp toplamayı kullanır. Bu nedenle, tinker kullanırken işi sıraya koymak için Bus::dispatch veya Queue::push kullanmanız gerekmektedir.
Tinker, kabuk içinde çalıştırılabilecek Artisan komutlarını belirlemek için bir "izin" listesi kullanır. Varsayılan olarak, clear-compiled, down, env, inspire, migrate, optimize ve up komutlarını çalıştırabilirsiniz. Daha fazla komut çalıştırmak isterseniz, bunları tinker.php yapılandırma dosyanızdaki komutlar dizisine ekleyebilirsiniz:
'commands' => [
// App\Console\Commands\ExampleCommand::class,
],
Genellikle, Tinker sınıfları otomatik olarak takma adlandırırken, bazı sınıfları asla takma adlandırmak istemeyebilirsiniz. Bu durumda, sınıfları tinker.php yapılandırma dosyanızın dont_alias dizisine ekleyerek bunu başarabilirsiniz:
'dont_alias' => [
App\Models\User::class,
],
Artisan ile sağlanan komutların yanı sıra, kendi özel komutlarınızı da oluşturabilirsiniz. Komutlar genellikle app/Console/Commands
dizininde saklanır; ancak, Composer tarafından yüklenebilecek komutlarınızın yüklenebileceğiniz kendi depolama konumunuzu seçme özgürlüğüne sahipsiniz.
Yeni bir komut oluşturmak için make:command
Artisan komutunu kullanabilirsiniz. Bu komut, app/Console/Commands
dizininde yeni bir komut sınıfı oluşturacaktır. Bu dizinin uygulamanızda bulunmadığından endişe etmeyin - make:command
Artisan komutunu ilk kez çalıştırdığınızda otomatik olarak oluşturulur:
php artisan make:command SendEmails
Komutunuzu oluşturduktan sonra, sınıfın signature
ve description
özellikleri için uygun değerleri tanımlamalısınız. Bu özellikler, komutunuzu listeleme ekranında görüntülenirken kullanılır. signature
özelliği ayrıca komutunuzun giriş beklentilerini tanımlamanıza olanak tanır. handle
yöntemi komutunuz çalıştırıldığında çağrılır. Komut mantığınızı bu yönteme yerleştirebilirsiniz.
Bir örnek komut inceleyelim. Aşağıdaki örnekte, bu yöntemin imzalarına tüm bağımlılıkları istediğimiz gibi talep edebiliriz. Laravel hizmet konteyneri, bu yöntemin imzasında tür belirtilen tüm bağımlılıkları otomatik olarak enjekte eder:
<?php
namespace App\Console\Commands;
use App\Models\User;
use App\Support\DripEmailer;
use Illuminate\Console\Command;
class SendEmails extends Command
{
/**
* Konsol komutunun adı ve imzası.
*
* @var string
*/
protected $signature = 'mail:send {user}';
/**
* Konsol komutunun açıklaması.
*
* @var string
*/
protected $description = 'Belirtilen kullanıcıya e-posta gönderir';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(DripEmailer $drip)
{
parent::__construct();
$this->drip = $drip;
}
/**
* Konsol komutunu yürüt.
*
* @return mixed
*/
public function handle()
{
$this->drip->send(User::find($this->argument('user')));
}
}
Bu belge, Laravel Artisan Konsolu hakkında genel bir genel bakış sunar ve temel kullanımı ile özel komutların nasıl oluşturulacağını açıklar. Artisan'ı daha fazla incelemek için resmi Laravel belgelerine başvurmanızı tavsiye ederim.