Görev (Task)
Paket yükleme&kaldırma ve benzeri tüm uzun süren işlemleri arkaplanda çalıştırıp arayüzde çıktıları göstermeyi kolaylaştıran Task(Görev) componentini öğreneceğiz.
Eklentinizde bazı durumlarda uzun süren işlemler yaptırmanız gerekebilir. Bu gibi durumlarda Task componentini kullanabilirsiniz.
Task Soyut Sınıfından Türeyen Bir Sınıf Oluşturmak
OOP eklenti klasör yapısında öncelikle app klasöründe
Tasks
isminde bir klasör oluşturuyoruz veInstallPackage.php
dosyası oluşturuyoruz.Task soyut sınıfındaki değişkenleri yaptıracağımız işe göre override ediyoruz.
Değişken
Tip
Açıklama
$command
string
Çalıştırılacak komut metni.
$logFile
string
Komutun çıktılarının saklanacağı konum.
$sudoRequired
boolean
Sudo gerekli ise true
olmalıdır. (opsiyonel)
$control
string
İşlemin bitip bitmediğini anlamak için gerekli grep kontrol deseni.
$attributes
array
Komut metninde değişken kullandıysanız değişkenlerin değerlerinin tanımlanması gereken dizi. (opsiyonel)
$checkCommand
string
İşlemin başarıyla bitip bitmediğinin kontrolünü sağlayan komut. (opsiyonel)
Görevleri Çalıştırmak
Controller içerisinde bir fonksiyon tanımlıyoruz ve routes.php içerisinde gerekli tanımlamaları yapıyoruz.
Bu fonksiyon geriye task componentini çalıştırmanız için gerekli HTML verisini döndürür.
Birden fazla task
tasks
dizisi içerisinde tanımlanabilir böyle bir durumda görevler kuyruklanır ve sırayla çalıştırılır.
Blade İçerisinde Task Componentinin Kullanımı
Tercihe bağlı olarak Görev componenti bir Modal içerisinde gösterilebilir.
Bu şekilde bir modal tanımlanabilir.
Görevi başlatmak için de bu şekilde javascript ile ajax çağrısı yapılır ve Task modal'ının içerisine eklenir.
Last updated