Blade Laravel'in tema motorudur. Ne işe yarar diyecek olursanız bizim View katmanında işlerimizi kolaylaştırır, daha okunabilir kod yazmamızı sağlar.PHP bilmeyen birisi bile Blade Syntax'ını biraz inceleyerek Laravel'e tasarımlar entegre edebilir.
Ayrıca şunuda söylemem gerekiyor Laravel sizi Blade'i kullanmaya zorlamıyor yani siz saf PHP yide kullanabilirsiniz View kısmında ama gerçekten çok iyi özellikleri var ben kullanmanızı kesinlikle öneriyorum.
Bizim View dosyalarımız app/views klasöründe yer alır siz tasarım dosyanızı buraya oluşturursunuz oluşturuyorken Blade'i kullanmak istiyorsanız dosyaadi.blade.php şeklinde kaydetmelisiniz oraya Blade yazmazsanız direk dosyaadi.php şeklinde kayıt ederseniz Blade'i kullanamazsınız.
Deneme amaçlı app/views/anasayfa.blade.php dosyası oluşturalım daha sonra bu View'i çağırmak içinse app/routes.php'ye şu kodları ekleyelim(routes.php'nizde kurulumdan gelen kodlar vardır onları silin öncelikle)
Bu kod ne yapıyor bakacak olursak;
Öncelikle sitemize herhangi bir paremetre olmadan direk index sayfasına girdiğini yakalıyoruz ve geriye bir View döndürüyoruz View'imizde gördüğünüz gibi sadece anasayfa yazdık .blade .php gibi şeyler yazmadık buna dikkat etmelisiniz Laravel otamatik olarak buluyor dosyayı uzantısını yazmanıza gerek yok direk dosya adını yazın. Örneğin dosyanız bir klasör içinde olsaydıda klasör.dosyaadi şeklinde yazmamız gerekicekti yani klasörler için / yerine . kullanıyoruz örnek vermek gerekirse dosyanızın yolu şöyleyse; app/views/yazilar/index.blade.php şu şekilde çağırırdık;
Evet çağırma işlemini yaptıktan sonra şimdide Blade'in Syntax'ına bakalım.
İlk olarak her programlama dilinde ilk uygulamamız olan Merhaba Dünya yazdırma işlemini yapalım;
Evet gördüğünüz gibi echo işlemini 2 adet süslü parantez açıp kapatarak yapıyoruz ben orda string yazdırdım değişken fonksiyon da yazdırabilirdik örneğin;
şeklindede kullanabiliriz yani {{ time() }} yazdığımızda Blade onu <?php echo time(); ?> olarak çeviriyor.
Tabi sadece echo işlemi yapmıyor ileride daha detaylı görücez örnek bir Form kodu;
Blade'in aynı zamanda şöyle bir kısakod'uda var;
Örneğin siz bir değişken'de isim tutuyorsunuz ve istiyorsunuzki isim tanımlaydıysa onu yazsın yoksada varsayılan bir değer yazsın;
Bu şekilde Blade kontrol eder $isim diye bir değişken varsa onu yazar yoksa Burak yazar.
Blade normalde 2 adet süslü parantezle kullanıyor ama aynı zamanda stringlerden escape yapmak için 3 adet süslü parantezle kullanabiliyoruz örneğin;
şeklinde HTML taglarından kaçınabiliriz böyle kullanınca kod çalışmaz. 3 süslü parantez kullanınca Laravel ekrana yazdırmadan önce değeri şu şekilde filtreler;
İlk olarak if yapısına bir bakalım
Laravel'in if kontrolünün içeriğini false mi diye kontrol etmemizi sağlayan bir komutuda var ayrıca;
yani bu şu kodla aynı işi yapıyor;
Evet arkadaşlar Blade Template'in ilk kısımı burda bitiyor 2. kısımda yield, section, extends gibi komutları incelicez.
Ayrıca şunuda söylemem gerekiyor Laravel sizi Blade'i kullanmaya zorlamıyor yani siz saf PHP yide kullanabilirsiniz View kısmında ama gerçekten çok iyi özellikleri var ben kullanmanızı kesinlikle öneriyorum.
Bizim View dosyalarımız app/views klasöründe yer alır siz tasarım dosyanızı buraya oluşturursunuz oluşturuyorken Blade'i kullanmak istiyorsanız dosyaadi.blade.php şeklinde kaydetmelisiniz oraya Blade yazmazsanız direk dosyaadi.php şeklinde kayıt ederseniz Blade'i kullanamazsınız.
Deneme amaçlı app/views/anasayfa.blade.php dosyası oluşturalım daha sonra bu View'i çağırmak içinse app/routes.php'ye şu kodları ekleyelim(routes.php'nizde kurulumdan gelen kodlar vardır onları silin öncelikle)
Route::get('/', function(){
return View::make('anasayfa');
});
Bu kod ne yapıyor bakacak olursak;
Öncelikle sitemize herhangi bir paremetre olmadan direk index sayfasına girdiğini yakalıyoruz ve geriye bir View döndürüyoruz View'imizde gördüğünüz gibi sadece anasayfa yazdık .blade .php gibi şeyler yazmadık buna dikkat etmelisiniz Laravel otamatik olarak buluyor dosyayı uzantısını yazmanıza gerek yok direk dosya adını yazın. Örneğin dosyanız bir klasör içinde olsaydıda klasör.dosyaadi şeklinde yazmamız gerekicekti yani klasörler için / yerine . kullanıyoruz örnek vermek gerekirse dosyanızın yolu şöyleyse; app/views/yazilar/index.blade.php şu şekilde çağırırdık;
Route::get('/yazilar', function(){
return View::make('yazilar.index');
});
Evet çağırma işlemini yaptıktan sonra şimdide Blade'in Syntax'ına bakalım.
İlk olarak her programlama dilinde ilk uygulamamız olan Merhaba Dünya yazdırma işlemini yapalım;
{{ 'Merhaba Dünya' }}
Evet gördüğünüz gibi echo işlemini 2 adet süslü parantez açıp kapatarak yapıyoruz ben orda string yazdırdım değişken fonksiyon da yazdırabilirdik örneğin;
{{ $degisken }}
{{ time() }}
şeklindede kullanabiliriz yani {{ time() }} yazdığımızda Blade onu <?php echo time(); ?> olarak çeviriyor.
Tabi sadece echo işlemi yapmıyor ileride daha detaylı görücez örnek bir Form kodu;
{{ Form::open() }}
{{ Form::label('sifre', 'Şifre') }}
{{ Form::password('sifre') }}
{{ Form::close() }}
Blade'in aynı zamanda şöyle bir kısakod'uda var;
Örneğin siz bir değişken'de isim tutuyorsunuz ve istiyorsunuzki isim tanımlaydıysa onu yazsın yoksada varsayılan bir değer yazsın;
{{ $isim or 'Burak' }}
Bu şekilde Blade kontrol eder $isim diye bir değişken varsa onu yazar yoksa Burak yazar.
Blade normalde 2 adet süslü parantezle kullanıyor ama aynı zamanda stringlerden escape yapmak için 3 adet süslü parantezle kullanabiliyoruz örneğin;
{{{ '<script>alert("js çalıştı");</script>' }}}
şeklinde HTML taglarından kaçınabiliriz böyle kullanınca kod çalışmaz. 3 süslü parantez kullanınca Laravel ekrana yazdırmadan önce değeri şu şekilde filtreler;
htmlentities($value, ENT_QUOTES, 'UTF-8', false);
Kontrol Yapıları
İlk olarak if yapısına bir bakalım
@if ($kontrol)
Kontrol değişkeni true değeri döndürüyor.
@elseif ($kontrol == null)
Kontrol değişkeni null değeri döndürüyor.
@else
Kontrol değişkeni false değeri döndürüyor.
@endif
Laravel'in if kontrolünün içeriğini false mi diye kontrol etmemizi sağlayan bir komutuda var ayrıca;
@unless ($degisken)
Değişken değeri false değeri döndürüyor.
@endunless
yani bu şu kodla aynı işi yapıyor;
@if (!$degisken)
Değişken değeri false değeri döndürüyor.
@endif
Döngüler
{{-- Blade Açıklama Satırı --}}
@for ($i = 1; $i < 100; $i++)
Döngünün {{ $i }}. dönüşü
@endfor
@foreach ($yazilar as $yazi)
{{ $yazi }}
@endforeach
@while (true)
Kısır döngü
@endwhile
Evet arkadaşlar Blade Template'in ilk kısımı burda bitiyor 2. kısımda yield, section, extends gibi komutları incelicez.








