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.
Başarılar …