Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel Artisan Koşucusu — Tarayıcıdan Artisan Komutlarını Güvenli Bir Şekilde Çalıştırın
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel Artisan Koşucusu — Tarayıcıdan Artisan Komutlarını Güvenli Bir Şekilde Çalıştırın

Yazılım

Laravel Artisan Koşucusu — Tarayıcıdan Artisan Komutlarını Güvenli Bir Şekilde Çalıştırın

teknomers
Son güncelleme: 30 Mart 2026 12:41
teknomers
Paylaş
Paylaş


Problem

Her Laravel geliştirici bu durumu bilir. Ekibin bir üyesi, önbelleği temizlemeye, migrations çalıştırmaya veya seeder tetiklemeye ihtiyaç duyar ama SSH erişimi yoktur. Bu durumda, Slack’te size mesaj atarlar. Siz SSH ile bağlanır, komutu çalıştırır, çıktıyı doğrular ve yaptığınız işi yapmaya devam edersiniz.

Bunun birçok takım üyesi ve birkaç ortam için tekrarı, gerçek bir verimlilik açığına dönüşebilir.

Bu sorunu çözmek için Laravel Artisan Runner adında bir paket geliştirdim. Bu paket, onaylanmış Artisan komutlarını temiz, Livewire destekli bir web arayüzü aracılığıyla açığa çıkarmanızı sağlar; tam denetim günlüğü, kuyruklu yürütme ve bildirimler ile birlikte.


Ne Yapar?

Artisan Runner, esasen size üç şey sunar:

  1. Artisan komutlarını tarayıcıdan gezip, yapılandırmanızı ve çalıştırmanızı sağlayan bir web arayüzü
  2. Onaylı bir komut havuzu böylece yalnızca onaylanmış komutlar çalıştırılabilir
  3. Tam bir denetim günlüğü her yürütme için — kim, ne zaman, hangi parametrelerle ne yaptı

Her komut bir kuyruk işi üzerinden çalışır. Engelleyici HTTP istekleri yok. Uzun süren migrations üzerinde zaman aşımı yok.


Kurulum

composer require cleaniquecoders/laravel-artisan-runner

php artisan artisan-runner:install

php artisan migrate

Hepsi bu. Üç komut ve hazırsınız.

İnşa komutu, ayarları, migrations’ları, görünümleri ve varlıkları bir kerede yayınlar. Daha sonra bileşeni herhangi bir Blade görünümüne ekleyebilirsiniz:

<artisan-runner::command-runner/>

Varsayılan rota /artisan-runner olup, web ve auth middleware’leri tarafından korunmaktadır.


Yapılandırma: Üç Keşif Modu

Paket, hangi komutların mevcut olduğunu belirlemenin üç yolunu destekler.


Manuel (Varsayılan — En Güvenli)

Sadece açıkça listelediğiniz komutlar allowed_commands içinde mevcut olacaktır:

// config/artisan-runner.php

'discovery_mode' => ,

=> [
    => [
        => ,
        => ,
        => ,
        => [],
    ],
    => [
        => ,
        => ,
        => ,
        => [
            [=> , => , => , => false],
            [=> ,  => , => ,        => false],
        ],
    ],


Otomatik Keşif

Bütün Artisan komutlarını yüzeysel bir şekilde sunar, hariç tutma listesinin dışında:

=> ,

=> [, , , , ],
=> [, , , ],

Geliştirme için iyi. Ancak sıkı bir hariç tutma listesi olmadan üretimde önerilmez.


Seçim

Ara bir yol — yalnızca açıkça dahil edilen komutlar keşfedilir, sonra manuel girişlerinizle birleştirilir:

=> ,
=> [, , , ],

Ayrıca komut listenizi oluşturmanıza yardımcı olacak bir CLI aracı da vardır:

php artisan artisan-runner:discover
php artisan artisan-runner:discover =json
php artisan artisan-runner:discover 


Altında Ne Oluyor?

Mimari, temiz bir aksiyon tabanlı deseni takip eder:

Kullanıcı "Çalıştır" butonuna tıklar
  → Livewire CommandRunner bileşeni
    → RunCommandAction (onay listesi ile doğrular)
      → RunArtisanCommandJob kuyruğa gönderilir
        → Job artisan::call() yapar
          → Çıktı + çıkış kodu CommandLog'a kaydedilir
            → Bildirim gönderilir (aktifse)


Denetim Kaydı

Her yürütme bir CommandLog kaydı oluşturur:

CommandLog::create([
    => Str::uuid(),
    => ,
    => [=> true],
    => ,  // beklemede → çalışıyor → tamamlandı/başarısız
    => ,
    => ,
]);

Durum döngüsü basittir:

beklemede → çalışıyor → tamamlandı
                  → başarısız

Her kayıt başlangıç zamanı, bitiş zamanı, tam çıktı ve çıkış kodunu takip eder. Livewire bileşeni her 5 saniyede bir güncelleme alır, böylece durum güncellemelerini gerçek zamanlı olarak görebilirsiniz.

Günlüklerinizi programatik olarak sorgulamak için:

use CleaniqueCoders\ArtisanRunner\Models\CommandLog;
use CleaniqueCoders\ArtisanRunner\Enums\CommandStatus;

// Son başarısızlar
CommandLog::where(, CommandStatus::Failed)->recent(7)->get();

// Kimler komut çalıştırdı
CommandLog::with()->latest()->take(20)->get();


Akıllı Parametre Gösterimi

UI, parametre tanımlarına dayalı olarak doğru girdi türünü otomatik olarak oluşturur:

  • Argumentler (sıralı) → metin girdi
  • Boolean bayrakları (--force, --seed) → onay kutuları
  • Sayısal seçenekler (--step=5) → sayı girdisi
  • String seçenekleri → metin girdi

Erken yaşadığım bir sorun: Livewire, -- önekli wire:model bağlamaları ile iyi çalışmıyor (örneğin, parameterValues.--force). Çözüm, dahili olarak indeks bazlı anahtarlar kullanarak bunları eşleştirmekti. Küçük bir ayrıntı ama bunu inşa eden herhangi birini zor durumda bırakırdı.


Bildirimler

Bir komut tamamlandığında veya başarısız olduğunda, paket, herhangi bir Laravel bildirim kanalı aracılığıyla yapılandırılabilir bir kullanıcıyı bilgilendirebilir:

=> [
    => true,
    => [, ],
    => [
        => \App\Models\User::,
        => ,
        => (, ),
    ],
],

Bildirim, komut adını, durumunu, çıkış kodunu ve yürütme süresini içerir. Slack, Discord veya ekibinizin kullandığı herhangi bir şeyle entegre edebilirsiniz.


Güvenlik: Varsayılan Olarak Paranoid

Bu, bir web arayüzünden kabuk komutları çalıştıran bir paket. Güvenlik isteğe bağlı değildir.

Öncelikli liste. Varsayılan mod manual‘dir. Onaylanmadıkça hiçbir şey çalışmaz.

Kimlik doğrulama korumalı rotalar. Varsayılan middleware ['web', 'auth']‘dir. Daha da sıkılaştırabilirsiniz:

=> [
    => [, , ],
],

Tehlikeli komutlar önceden hariç tutulur. Otomatik keşif modunda bile, down, db:wipe, migrate:fresh, tinker, ve serve gibi komutlar varsayılan olarak dışarıda bırakılır.

Tam denetim kaydı. Her yürütme, kim tarafından tetiklendiği ile kaydedilir (polimorfik ilişki – her model ile çalışır, yalnızca User ile değil).

Retry yok. Başarısız işler başarısız kalır. Siz araştırırsınız, üretimde migrate --force otomatik olarak denemez.

Zaman aşımı koruması. Komutlar 300 saniye sonra durdurulur. Koşmayan süreçler yok.


Livewire 3 + 4 Uyumluluğu

Paket, hem Livewire 3 hem de 4’ü destekler. Servis sağlayıcısı kaydı otomatik olarak işler:

if ((Livewire::class, )) {
    // Livewire 4
    Livewire::(, __DIR__ . );
} else {
    // Livewire 3
    Livewire::(, CommandRunner::);
}

Özellik bayrakları yok. Hiçbir yapılandırma anahtarı yok. Sadece çalışıyor.


Ne Zaman Kullanmalısınız?

Fikir:

  • Teknik olmayan ekibin bakım görevlerini tetiklemek için ihtiyaç duyduğu admin panelleri
  • Dağıtım hatlarında “dağıtım sonrası görevleri çalıştır” butonuna ihtiyaç duyduğunuz yerler
  • Her kiracı için önbellek temizleme veya migrations gerektiren çok kiracılı uygulamalar
  • Herkesin SSH erişimi olmayan ancak herkesin önbelleği temizlemesi gereken takımlar

İdeal değil:

  • İnteraktif komutlar (tinker, make:model)
  • 5 dakikayı aşan uzun süreli toplu işler
  • Gerçek zamanlı akış çıktısına ihtiyaç duyan her şey (çıkışı tamamlandıktan sonra alır)


Yığın Uyumluluğu

Desteklenen
PHP8.3+
Laravel11, 12, 13
Livewire3, 4
Tailwind4 (CDN aracılığıyla)


Deneyin

composer require cleaniquecoders/laravel-artisan-runner
php artisan artisan-runner:install
php artisan migrate
php artisan queue:work

Daha sonra tarayıcınızda /artisan-runner adresine gidin.

Kaynak kodu: github.com/cleaniquecoders/laravel-artisan-runner


Ben Nasrul Hazim, Malezya’dan bir yazılım mühendisiyim ve Laravel paketleri ve araçları geliştiriyorum. Daha fazla çalışmama nasrulhazim.com‘dan ulaşabilirsiniz.

Kaynak: Orijinal Makale

Relay ile Laravel Reverb: Gerçek Bir Performans Testi
Laravel’de JWT ile Çalışmak (Büyü Olmadan)
Laravel ile Inertia ve React kullanarak Çok Dilli Uygulama Geliştirme: Pratik Bir Kılavuz
Hervey Bay’de Araç Yıkama Hizmetleri | Profesyonel ve Uygun Fiyatlı Araç Temizliği
RAM Çökmesini Önleyin: Laravel ile Büyük Dosya İndirmelerini Akış Halinde Yapın
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale IRS, Akıllı Denetimler İçin Palantir ile Hedef Belirliyor!
Sonraki Makale Nazi Avcılığı: Karanlıkta Geçen Bir Mücadele Anlatımı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Kripto Para Piyasasında Sert Düşüş: Bitcoin ve Ether FTX Krizinden Beri En Kötü Haftayı Geçirdi
Finans
Laravel ile Çok Kiracılı Bir Bordro Motoru Geliştirirken Öğrendiklerimiz
Yazılım
Final Fantasy 7 Dünyasında Keşfedilecek 22 Yeni Ekran Görüntüsü
Oyun
RTX 3050 Ti mühendislik örneği fotoğraflarda ve testlerde göründü
Donanım
Huawei-led ekip, 1.6 trilyon parametreli DeepSeek modelini tanıttı
Donanım
Blasphemous 2 İçin Ücretsiz Heyecan Verici Yeni Genişleme Geldi
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?