Laravel Blade Template Kullanımı
Hepinize merhaba dostlarım 😊. Daha önceki yazımda yani Laravel View Oluşturma başlıklı yazımda (okumayan dostlarım varsa buradan ulaşabilir) view oluşturma işleminden size birazcık bahsetmiştim 😊. Ve bu paramete gönderdikten sonra da bunun ekrana bastırılma işlemlerine değinmiştim (string interpolation konusu)
Şimdi ise bu view kısmını oluşturduğumuzda (blade olarak tanımladığımızda) bizim aslında laravel üzerinde ne gibi kolaylıkların beklediğini bu dersimizde açıkça değinmiş olacağız dostlarım 😊. Şimdi gelelim öncelikle neden blade şablon motoru kullanma ihtiyacı duyarız gelin birlikte onlara bakalım 😊
NEDEN BLADE ŞABLON MOTORU KULLANIRIZ ?
Eveeeet 😊. Artık konumuza yavaştan yavaştan giriş yapmaya başladık dostlarım 😊. Önceki dersten de view oluşturma ve kullanma, içerisine parametre gönderme işleminde sonra sizin aklınızdaki soru aşağıdaki gibi olmuştur:
Neden blade şablon motorunu kullandık acaba ?
şeklinde bir sorunun olduğunu rahatlıkla seziyorum 😊. Özellikle ben de laravel frameworküne ilk başladığım zamanlarda bu soru aklımı çok fazla kurcalıyordu. Şimdi gelelim bunu kullanma nedenimize
Dostlarım blade şablon motorun na genel olarak bakacak olursak bizim projemizin hızlı bir şekilde oluşmasında, master bir layout oluşturmamızda (bunu bir diğer derste göreceğiz 😊), uzun uzun php tagleri yazıp kodlamada karmaşa oluşmasını önleyen, dediğim gibi kodlama işlemlerini daha da hızlandırıp bizim sonuca daha çabuk ulaşmamıza yardımcı olur, ayrıca projemizin güvenliği açısından da xss e izin vermez (ama sizin her halükarda güvenlik yazmanızı tavsiye ederim 😊). Şimdi gelelim artık dostlarım bu blade template içerisinde php kodlamaları nasıl yapılıyor bunlara bir göz atalım derim 😊. Kemerlerinizi bağlamışsanız yavaş yavaş uçuşa geçebiliriz
PHP TAGLERİNİN KULLANIMI
Ve geldik dostlarım artık yavaştan yavaştan blade şablon motoru muzun üzerinde php taglerinin nasıl açıldığına. Aslında bu başlığa bu konumuzda blade kullanımı nın ilk başlığı olarak bakabiliriz 😊. Şimdi dostlarım öncelikle terminal kısmımıza gelip HomeController isimli bir controller dosyası oluşturalım 😊 (controller oluşturma kısmında takılan dostlarım varsa buradan ulaşabilir 😊). Controller dosyamızı oluşturduktan sonra ise gelelim routes/web.php kısmına ve
Route::group(['prefix'=>'/'],function (){
Route::get('','HomeController@index');
});
şeklinde bir rota oluşturalım. Yani projemiz açıldığında çalışacak olan Controller ve methodumuzu ayarladık (bu kısımda da aklı karışan dostlarım varsa buradan yararlanabilir 😊). Bu kısmı da tamamladığımıza göre resources klasörümüzün altında bir view oluşturmamız lazım 😊. Ben bu view dosyasını blade klasörü altında index.blade.php şeklinde oluşturdum dostlarım 😊. Bu kısmda kadar da tamam ise dostlarım şimdi gelelim HomeController dosyamıza 😊. Burada da route daki gerçekleşecek yani tetiklenecek olan methodumuzu yazalım ve çalışacak olan index.blade.php nin yolunu verelim. Hemen HomeController dosyamızı açtık ve
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index(){
return view('blade.index');
}
}
şeklinde çağrılacak olan view imizi return ettirme işlemimizi ayarladık. Şimdi sıra index.blade.php dosyamıza geldi dostlarım 😊
Normalde biz bir değişken tanımlayacak olurken veya bir php kodu yazacak olurken aşağıdaki gibi yani
<?php
$name = "MFSoftware Blog";
echo $name;
?>
şeklinde uzun uzun kod yazıyorduk, php taglerini aç, küçüktür büyüktür vs koy bir sürü iş yığılıyordu bize 😊. Şimdi sizin aklınızdaki soruya gelelim çünkü seziyorum 😊
Hocam blade şablon motoru bunu desteklemiyor mu yoksa ?
şeklinde sorular sizin zihninizde yer etmeye başlamış olabilir 😊. Cevabım ise "Destekler, ve kod rahat bir şekilde çalışır" şeklinde olacaktır 😊. Kodu çalıştırdığımızda yani browser sayfasını açtığımızda
MFSoftware Blog
şeklinde rahat bir çıktı bize dönecektir 😊. Şimdiiii gelelim biz bunu blade kısmında nasıl yapacağız gelin bir de ona bakalım 😊. İşlem o kadar basit ki hiçbir zor yanı yok. Yukarıdaki işlemi gelelim
@php
$name = "MFSoftware Blog";
echo $name;
@endphp
şeklinde yazalım 😊. Yani @php ve @endphp ile biz php taglerinin açılış ve kapanış oklarını belirttik diyebilirim herhangi bir karmaşa yok 😊. Kodumuzu browser üzerinde çalıştırdığımızda
MFSoftware Blog
şeklinde bir çıktı alacağız dostlarım 😊. İşlemler işte bu kadar basit. Şimdi gelelim bir diğer kısmımıza
IF-ELSE KULLANIMI
Her programlama dillerinin vazgeçilmezi niteliğinde olan ve php programlama dilinde de kullanıllan if else karar yapısının blade şablon motoru üzerinde kullanımı da bir nebze insanı meraklandırmıyor değil dostlarım 😊. Normalde biz bunu aşağıdaki şekildeki gibi yapıyorduk
<?php
$yas = 21;
if ($yas >= 18){
echo "Ehliyet Alabilir";
}else{
echo "Ehliyet Alamaz";
}
?>
şeklinde uzun uzun bir php tag i aç kapat, sonrasında içerisine if else kısmını yaz süslü parantezleri oluştur vs vs bir sürü karmaşa oluyordu 😉. Ama bu kodu da çalıştırabiliyorduk o açıdan sorunumuz olmuyordu dostlarım 😊. Bunu browser sayfamızda çalıştırdığımızda
Ehliyet Alabilir
şeklinde bir çıktı bizi karşılıyor olacaktır. Buraya kadar tamamız sıkıntı yok 😊. Peki ya bunu blade kısmında nasıl oluşturacağız gelin onu da inceleyelim
@php
$yas = 21;
@endphp
@if($yas>=21)
Ehliyet Alabilir
@else
Ehliyet Alamaz
@endif
şeklinde kodlarımızı yazmış bulunmaktayız dostlarım 😊. Normalde en üstteki gibi her zaman @php @endphp şeklinde bir değişken oluşturmayız bu değişkenimiz zaten controller üzerinden view kısmımmıza bir parametre olarak geleceği için sıkıntı yok 😉. Bu kodumuzu browser üzerinde çalıştıralım ve sonucumuza bakalım dostlarım
Ehliyet Alabilir
şeklinde sonucumuzun sorunsuz bir şekilde ekranımıza bastırıldığını görmüş bulunmaktayız dostlarım 😊. Artık işlemlerimizde blade şablon motoru nun kullanıldığını görünce kodlarımızı daha derli toplu bir şekilde yazmamıza olanak sağladığını sezmişsinizdir 😊. Şimdi bu kısım da tamam ise gelelim bir diğer konumuza
IF-ELSE IF-ELSE KULLANIMI
Artık if-else konumuzdan sonra geldik artık if-else if-else konumuza 😊. Diğer programlama dillerinde olduğu gibi PHP programlama dilinde de her zaman sadece ve sadece if else kulllanacağız diye bir kaide yok. Gün gelecek if-else if-else kullanacağız 😊. Bunu normalde biz php dosyamızda örnek vermemiz gerekirse
<?php
$cinsiyet = 1;
if ($cinsiyet==1){
echo "Erkek";
}elseif ($cinsiyet==0){
echo "Bayan";
}else{
echo "Cinsiyet Belirtilmemiş";
}
?>
şeklinde oluşturuyorduk. Uzun bir php tagi ve içerisine if else blokları, süslü parantezler açıp işlerimizi gerçekleştiriyorduk. Bu şekilde yazalım ve kodumuzu çalıştıralım nasıl bir çıktı gelecek karşımıza bir bakalım 😊
Erkek
şeklinde çıktımız bize verilmiş oldu işlemler sıkıntısız bir şekilde çalışıyor 😊. Şimdi ise gelelim dostlarım ve bu işlemin blade şablon motoru ile nasıl hızlı bir şekilde gerçekleştiğine bir göz atalım 😊. Hemen kodlama kısmımızı (yani blade kısmımızı) açalım ve
@php
$cinsiyet = 0;
@endphp
@if($cinsiyet==1)
Erkek
@elseif($cinsiyet==0)
Bayan
@else
Cinsiyet Belirtilmemiş
@endif
şeklinde kodlarımızı yazalım. Kodda ufak değişiklik yaptık ve sonucun elseif kısmına düşmesini sağladık. Kodu browser üzerinde çalıştırırsak
Bayan
şeklinde bir çıktının bizim karşımıza geldiğini çok rahat bir şekilde görürüz dostlarım 😊. Bütün işlemler blade şablon motoru ile işte bu kadar basit 😊. Bu kısma kadar tamam isek dostlarım gelelim artık bir diğer konumuza 😊
FOR DÖNGÜSÜ KULLANIMI
Geldik artık zevkli konulardan birisi olan döngülerimize 😊. Artık bunu tekrar tekrar dememe gerek yok çünkü her programlama dilinde olan bir şeydir döngüler. Bunun blade şablon motoru kullanmadan önce nasıl kullanıldığı ile ilgili bir örnek yapalım istiyorum 😊. Hemen blade kısmımızı açalım ve
<?php
for ($i=1; $i<=5; $i++){
if ($i%2==0){
echo $i." Sayısı Çift<br>";
}else{
echo $i." Sayısı Tek<br>";
}
}
?>
şeklinde ufak bir örnek yapalım 😊. Önceki zamanlarda yani blade şablon motoru kullanmadan bu şekilde yapabiliyorduk 😊. Bu kodumuzu browser kısmında çalıştıralım hızlıca
1 Sayısı Tek
2 Sayısı Çift
3 Sayısı Tek
4 Sayısı Çift
5 Sayısı Tek
şeklinde sonuç çıktısı bize rahat bir şekilde verilmiş oluyor dostlarım buraya kadar sorunumuz yok 😊. Ama laravel ile proje geliştirirken bunu blade şablon motoru nun bize sunduğu kolaylıkları kullanarak yazmamız bize oldukça yarar sağlayacaktır 😊. Gelin hızlıca bunu da yazalım
@for($i=1; $i<=5; $i++)
@if($i%2==0)
{{ $i." Sayısı Çift" }} <br>
@else
{{ $i." Sayısı Tek" }} <br>
@endif
@endfor
şeklinde kodlarımızı yazdık. Görüyorsunuz değil mi önceki örnekteki kodlara nazaran ne kadar derli ve toplu duruyor 😊. Şimdi gelelim dostlarım ve bunu da browser üzerinde çalıştıralım 😊.
1 Sayısı Tek
2 Sayısı Çift
3 Sayısı Tek
4 Sayısı Çift
5 Sayısı Tek
şeklinde sonuçlarımız sorunsuz bir şekilde karşımıza çıkıyor dostlarım 😊. Olay gayet basit 😊. Gelelim bir diğer konumuza daha
WHILE DÖNGÜSÜ KULLANIMI
While döngüsünün çalışma mantığını hepimiz biliyoruz. Bunun içerisinde dönen şart koşul sağlandığı sürece çalışan ve koşul sağlanıyorsa içerisine tanımladığımız işlemleri gerçekleştiren bir döngüdür. Öncelikle bunu blade şablon motoru olmadan nasıl yapıldığını ve daha sonrasında blade şablon motoru kullanarak nasıl yapıldığından bahsedeceğim 😊. Hemen kodlama kısmımızı açalım ve
<?php
$dongu = 1;
while ($dongu<=5){
echo "Döngü Devam Ediyor <br>";
$dongu++;
}
echo "Döngü Bitti";
?>
şeklinde kodumuzu yazalım. Daha öncesinde blade şablon motoru kullanmadan bu şekilde yazıyorduk hepimiz biliyoruz dostlarım 😊. Bu kodu browser üzerinde açtığımızda ise
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Bitti
şeklinde ekranımıza kodlarımızın çıktısını bastırdık. Kodlarımız gayet sorunsuz bir şekilde çalışıyor 💯. Şimdi gelelim dostlarım bunu bir de blade şablon motoru kullanarak yazalım 😊. Hemen kodlama kısmımıza gelip
@php
$dongu = 1;
@endphp
@while($dongu<=5)
Döngü Devam Ediyor <br>
@php
$dongu++;
@endphp
@endwhile
Döngü Bitti
şeklinde kodlarımızı yazıyoruz 😊. İşlemlerimiz işte bu kadar basit ve hızlı dostlarım hiçbir karmaşıklığı yok 😊. Yukarıdaki @php @endphp daha önceki başlıklarda da değindiğim gibi zorunlu olarak tanımlanacak bir şey değil bize değişken controller kısmından geleceği için normalde bunu yazmamız gerekmeyecek 😊. Şu anlık sadece blade şablon motoru üzerinde çalıştığımız için bu şekilde bir değişken tanımlama gereği duyduk. Şimdi ise gelelim kodun çıktısına 😊. Browser sayfamızı açtığımızda
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Devam Ediyor
Döngü Bitti
şeklinde kodlarımızın çıktısı başarılı bir şekilde verilecektir dostlarım 💯😊. Bütün işlemlerimiz işte bu kadar basit 😊. Gelelim bir diğer konumuza
FOREACH DÖNGÜSÜ KULLANIMI
Diziler üzerinde foreach döngüsünün sıklıkla kullanıldığını programlamaya başladığımız günden bu yana hepimiz biliyoruz dostlarım. Şimdi zihninizde şu sorunun varlığını seziyorum
Hocam yok artık foreach için de mi blade şablon motoru bize kolaylık sağlıyor 😊 ? Vallahi çok iyiymiş
şeklinde bir sorunun olduğunu ciddi ciddi seziyorum 😊. Cevabım ise "Elbette kolaylık sağlıyor 😊. Bunun gibi daha birçok kolaylık sağlanıyor" diyebilirim 😊. Şimdi blade şablon motoru kullanmadan bu foreach döngüsünü nasıl oluşturuyorduk gelin bir göz atalım. Hemen kodlama kısmımıza gelelim ve
<?php
$dizi = ["Zafer YILDIZ", "Emrullah TANIMA", "Muhammed Fatih BAĞCIVAN", "Aylin DURAN"];
foreach ($dizi as $key => $value){
echo "Dizinin ".$key.". indisinin değeri ".$value."<br>";
}
?>
şeklinde kodlarımızı yazdık. Browser kısmında kodumuzu çalıştırdığımızda ekranımıza gelen çıktı
Dizinin 0. indisinin değeri Zafer YILDIZ
Dizinin 1. indisinin değeri Emrullah TANIMA
Dizinin 2. indisinin değeri Muhammed Fatih BAĞCIVAN
Dizinin 3. indisinin değeri Aylin DURAN
şeklinde gözükecektir 😊. Kodlarımız başarılı bir şekilde çalışıyor 💯. Şimdi gelelim bu işlemi blade şablon motoru kullanarak yazalım 😊. Hemen kodlama kısmımızı açalım ve
@php
$dizi = ["Zafer YILDIZ", "Emrullah TANIMA", "Muhammed Fatih BAĞCIVAN", "Aylin DURAN"];
@endphp
@foreach($dizi as $key=>$value)
Dizinin {{ $key }} indisinin değeri {{ $value }} <br>
@endforeach
şeklinde kodlarımızı yazalım 😊. Kodlarımızı yazdığımıza göre sıra geldi test etme aşamasına 😊. Hemen browser sayfamızı açalım ve
Dizinin 0 indisinin değeri Zafer YILDIZ
Dizinin 1 indisinin değeri Emrullah TANIMA
Dizinin 2 indisinin değeri Muhammed Fatih BAĞCIVAN
Dizinin 3 indisinin değeri Aylin DURAN
şeklinde kodlarımızın başarıyla çalıştığını ve ekranımıza sorunsuz bir şekilde basıldığını görüyoruz 😊. Her şey 10 numara 😉. Gelelim bir diğer konumuza
FORELSE DÖNGÜSÜ KULLANIMI
Geldik bir diğer döngümüze daha 😊. İsmi size garip gelecektir bunu seziyorum dostlarım 😊. Çünkü normalde programlama dillerinde böyle bir döngüyle hiç karşılaşmadık. Bu forelse döngüsü tamamen blade şablon motoru içerisinde geliştirilmiş ve bize son derece kolaylık sağlayan bir döngüdür 😊. Amacına bakacak olursak dostlarım size şöyle anlatayım. Biz normalde bir diziyi foreach döngüsü ile yazıyoruz ya heh işte burada foreach döngüsüne gönderdiğimiz dizi içeriği boş ise hata veriyor. Normalde bunu blade şablon motoru kullanmadan önce bir if else ile kontrol ederdik. Ama forelse kısmı bu işi tamamen kolaylaştırıyor 😊. Hemen gelelim öncelikle bunu blade şablon motoru kullanmadan yazmayı deneyelim. Hemen kodlama kısmımızı açalım ve
<?php
$dizi = [];
if (empty($dizi)){
echo "Dizi İçeriği Boş";
}else{
foreach ($dizi as $key => $value){
echo "Dizinin ".$key." indisinin değeri ".$value."<br>";
}
}
?>
şeklinde kodlarımızı yazalım 😊. Şimdi ise browser sayfamızı açalım ve yazdığımız kodu test edelim 😊
Dizi İçeriği Boş
şeklinde kodumuzun çıktısı başarılı bir şekilde ekranımıza bastırıldı dostlarım 💯😊. Şimdi ise gelelim aynı işlemi blade şablon motoru kullanarak yapalım 😊. Hemen kodlama sayfamızı açalım ve
@php
$dizi = [];
@endphp
@forelse($dizi as $key => $value)
Dizinin {{ $key }} indisinin değeri {{ $value }} <br>
@empty
Dizi İçeriği Boş
@endforelse
şeklinde kodlarımızı yazdık dostlarım 😊. Görüyorsunuz önceki kodlama işlemi gibi karmaşalık ve uzunluk yok az kodla çok iş yaptık 😊.Kodumuzu browser üzerinde çalıştırdığımızda ise
Dizi İçeriği Boş
şeklinde kodumuzun çıktısı sorunsuz bir şekilde ekrana bastırılacaktır 😊. Kodlarımız sorunsuz bir şekilde çalışıyor 💯. Bu kısma kadar her şey tamam ise gelelim bir diğer kısmımıza dostlarım 😊
SWITCH - CASE KULLANIMI
İsmini görür görmez biliyoruz dostlarım bunun kullanım amacını 😊. Özellikle birden fazla if else tanımlamalarına karşı geliştirilmiş bizim birden fazla sorgu yapmamıza yarayan bir yapıdır 😊. Gelin şimdi bu yapıyı öncelikle blade şablon motoru kullanmadan deneyelim, sonrasında ise blade şablon motoru kullanarak deneyelim 😊. Hemen kodlama kısmımızı açalım ve
<?php
$dogum_ayi = 6;
switch ($dogum_ayi) {
case 1:
echo "Ocak Ayında Doğdunuz";
break;
case 2:
echo "Şubat Ayında Doğdunuz";
break;
case 3:
echo "Mart Ayında Doğdunuz";
break;
case 4:
echo "Nisan Ayında Doğdunuz";
break;
case 5:
echo "Mayıs Ayında Doğdunuz";
break;
case 6:
echo "Haziran Ayında Doğdunuz";
break;
default:
echo "Ay Bilgisi Alınamadı";
break;
}
?>
şeklinde kodlarımızı yazdık dostlarım 😊. Benim doğduğum ayı yani Haziran ayının numarasını alıp bunu tek tek kontrol ettirdik 😉. Daha sonra ise ekrana bastırılma işlemini ayarladık. Hemen gelelim browser sayfamızı açalım ve yazdığımız kodu test edelim 😊.
Haziran Ayında Doğdunuz
şeklinde yazdığımız kodumuz ekranımıza rahatlıkla bastırıldı dostlarım 😊. Şimdi gelelim bu yazdığımız switch case yapısını blade şablon motoru kısmında gerçekleştirelim 😊. Hemen kodlama kısmını açalım ve
@php
$dogum_ayi = 6;
@endphp
@switch($dogum_ayi)
@case(1)
Ocak Ayında Doğdunuz
@break
@case(2)
Şubat Ayında Doğdunuz
@break
@case(3)
Mart Ayında Doğdunuz
@break
@case(4)
Nisan Ayında Doğdunuz
@break
@case(5)
Mayıs Ayında Doğdunuz
@break
@case(6)
Haziran Ayında Doğdunuz
@break
@default
Ay Bilgisi Alınamadı
@break
@endswitch
şeklinde kodlarımızı yazdık dostlarım 😊. Gayet düzenli ve temiz bir yapıda görünüyor 😊. Kodlarımızı yazdığımıza göre dostlarım sıra geldi bunların test aşamasına 😊. Hemen browser sayfamıza geçişimizi yapalım ve test işlemlerimize başlayalım. Browser sayfasında kodumuzu çalıştırdığımızda
Haziran Ayında Doğdunuz
şeklinde kodumuzun çıktısını rahatlıkla göreceğiz 😊. Buradan da anlayacağımız ve bizi mutlu eden tek şey "Kodlarımız Başarılı Bir Şekilde Çalışıyor 😊💯".
Eveeeet dostlarım 😊. Bu yazımda sizlere Laravel frameworkü üzerinde kullanılan ve işlerimizi oldukça kolaylaştıran blade şablon motoru kullanımından elimden geldiğince dilim döndüğünce bahsetmeye çalıştım. Umarım faydalı olmuşumdur dostlarım. Eksik veya hatalı bir anlatım yapmışsam benimle iletişime geçmekten çekinmeyin 😊. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum sizi. Her öğrenme süreci sancılı geçer 😊. Bu süreçte sizlerden istediğim tek şey "İstikrarlı ve Azimli Olmalısınız, Bolca Pratik Yapmalısınız 😊". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır 😊
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer