Laravel 8′ de Kendi Blade Directive’ imizi Oluşturma

Dünyada en çok kullanılan web frameworklerinden ve PHP ile geliştirilen Laravel, Blade template engine ile birlikte geliyor. Blade’ de ön tanımlı olarak gelen @section, @yield, @parent, @json gibi belirli amaçlar için geliştirilen directive’ ler web uygulasını geliştirirken kullanıcıya büyük kolaylıklar sağlar. Fakat bazen ihtiyaçlarımız için kendi directive’ imizi yazmamız da gerekebilir. Bu yazıda Laravel‘ de kendi directive’ imizi nasıl oluşturabileceğimizi anlatacağım.

İlk önce Providers klasöründe AppServiceProvider.php sınıfının içindeki boot() metodunun içinde directive’ imizi oluşturuyoruz. Aşağıdaki kod bloğunda görüldüğü gibi my_method adında kendi directive’ imiz tanımladık.

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot()
    {
        /**My Custom Blade */
        Blade::directive('my_method', function ($value = null) {
            
            $value = "| ".$value." |";

            return "<h1 style='color: green'> $value </h1>";
        });
    }
}

Kullanımı

Oluşturduğumuz directive’ i aşağıdaki gibi blade dosyalarında kullanabiliriz.

<div class="container">
    <div class="row justify-content-md-center">

        @my_method('this is my first directive.')
  
    </div>
</div>

Uygulama dosyasını çalıştırdığımızda internet tarayıcısında aşağıdaki çıktıyı elde edeceğiz.

Oluşuturulan Directive’ in Tarayıcıdaki sonucu

Başarılar …