Selamlar, bu yazıda Laravel üzerinde kendi yazdığımız bir helperı blade üzerinde kullanmayı anlatacağım. Gayet basit bir kullanımı vardır. Laravel projesini normal olarak kurduğunuzu varsayıyorum. Ben düzenli bir yapı olması için proje içerisindeki app klasörü altında Helpers adında bir klasör oluşturup helperlarımı burada topluyorum. Örnek olarak Str adında bir helper oluşturdum.



Resimde gördüğünüz gibi birden fazla helper bulunmakta.

Burada Str adındaki helper dosyamda belli başlı işlemler yapmak istiyorum, mesela elimdeki bir ürünün durumlarını (status) sayı olarak tutuyorum ve bunların karşılıklarını yazmak istiyorum.

0 - Bekleyen

1 - Tamamlanan gibi.

İlk olarak Str.php yi oluşturdum.


<?php
namespace App\Helpers;


use Illuminate\Support\Facades\DB;


class Str {
    /*
     * Get Status Name
    */
    public static function getStatusName($status_id = null){
        $statusses = DB::table('statusses')->get();
        foreach ($statusses as $status){
            if($status->key == $status_id){
                $output = $status->value;
            }
        }
        return $output;
    }


}

gördüğünüz gibi burada helper için namespaceimi tanımladım, kullanacağım DB sınıfını da çağırdım. Statuslerimi çekip var olan değerimi geriye döndürüyorum. Burada veritabanımdan statusleri döndürüp, fonksiyona verdiğim id ile eşleşen var mı diye bakıyorum, varsa status ismini geri döndürüyorum. Şimdi gelelim bunu view üzerinde kullanmaya.


Öncelikle yazdığımız helperı diğer paketler gibi kullanabilmek için bunu config/app.php altındaki alias arrayi içine tanımlamamız gerekiyor.

örnek olarak config/app.php alias bölümü

'aliases' => [
    'Str' => App\Helpers\Str::class,
]

bu şekilde yazdığımız helperı tanımladıktan sonra bunu her yerde Str olarak kullanabiliriz, siz isterseniz bunu başka bir isimle de alias içinde tanımlayabilirsiniz.

İşte şimdi helperımız tanımlandı ve kullanılmaya hazır. Ben örnek olarak view sayfamda şu şekilde kullandım.


{{ Str::getStatusName($data->status) }}
// Çıktı
" Tamamlanan işlem "


İşte bu kadar basit, siz bunu ihtiyacınıza göre başka bir işlem için de kullanabilirsiniz, gördüğünüz gibi helper ismimi ve methodumu yazıp içerisinde parametremi gönderdim ve geriye gelen değer başarıyla döndü.


Başka bir yazıda görüşmek üzere.