Laravel Rehberi – View Sistemi (Temel Seviye)

Başlarken;

Laravel Framework’ün dosya ve dizinlerini incelemiştik. Eğer hâlâ bu dosya ve dizinleri bilmiyorsanız ” Laravel Rehberi – Temel Dosya ve Dizin Yapısı “ makalemi inceleyebilirsiniz.

“.blade.php” uzantısı size umarım bir şeyler hatırlatıyordur. Hmm… Hala hatırlatmadı ise hatırlatayım. Laravel Framework tarafından derlenen View uzantısıdır. Laravel istekte bulunulan adresin View dökümanını birleştirir, derler, süsler, püsler en son kullanıcıya “.html” uzantısında bir döküman sunar. Bu yapı nasıl ilerier? Derleme nasıl sağlanır?

Bu makalede Laravel Framework üzerinde View tanımlamaya odaklanacağız. Bu makalenin amacı Laravel Framework yardımıyla “Temel View” kavramını öğretmek ve kullanmaktır. Bu makale size yeterli gelmediyse yakın zamanda yayınlayacağım “Laravel Rehberi – View Sistemi (İleri Seviye)” başlığını inceleyebilirsiniz.

Temel Gereksinimler;

İzlenecek Yol Haritası;

  1. View Nedir?
  2. Yeni bir View nasıl oluşturulur?
  3. Oluşturulan View’lar nasıl görüntülenir?

View Nedir?

” MVC 5N1K? “ makalesinde temel olarak View kavramına değinmiştik. Burada da üzerinden kısaca bir geçelim.

  • View: Kullanıcının etkileşime geçeceği arayüz bu katmanda oluşturulur. Genel olarak HTML, CSS, JS dosyaları bu katmandadır.
Temel olarak MVC yapısının görsel şeması.
Temel MVC Yapısı Diyagramı

Yeni Bir View Nasıl Oluşturulur?

View dosyaları nerede oluşuyordu? Kafa karıştıran bir an vardı hatırlayalım. Asla ve asla View dosyalarımızı “public” dizininde aramıyorduk. Burası CSS, JS, Fotoğraf, Resim gibi verileri içeriyordu. Bizim bakacağımız dizin “resources/views” olacak. Kullandığınız IDE üzerinden veya Dosya Yöneticisi üzerinden bu dizin içerisine yeni bir dosya oluşturalım. Adını da “benimguzelviewim.blade.php” koyalım.

Çalışma alanımızın şu an ki hali aşağıdaki gibidir. ("*" içeren dosyalar/dizinler anlatılan bölümde oluşturulmuştur.)
/proje_adi
     /resources
          /views
               benimguzelviewim.blade.php *

Tabi ki sadece View dosyasını oluşturmak yeterli bir sonuç vermiyor. Bu View dosyasını çağıracak Controller gerekiyor. Ama biliyoruz ki biz daha Controller oluşturmayı bile öğrenmedik. Bu sebeple Laravel Projesi oluşturduğumuz anda içerisinde gelen örneklerden yola çıkacak öğreneceğiz.

Oluşturulan View’lar Nasıl Görüntülenir?

Controller tarafına erişmemi sağlayan kısım “Router” yapısıydı. Rotaları da biz “web.php” de tanımlıyorduk. “web.php” dosyasının dizini “routes/web.php” içerisindeydi. İçeriği varsayılan olarak şu şekildeydi

Route::get('/', function () {
    return view('welcome');
});

Hmm… Biraz düşünelim. “/” yani WEB sayfamızın ana dizinine (Ör: “www.yasinerarslan.com/”) yönlendiren ve GET isteği ile yakalanan bir rota oluşturulmuş. Bu sayfaya erişmeye çalıştığımızda bir fonksiyon çalışıyor. “return” dikkatinizi çekmeli bu anda. Geriye ne dönüyor? “view()” fonksiyonu derlenmek istenen View adını parametre olarak alır.

return view('view_adi');

“Ama nasıl ya? View adımız bizim ‘benimguzelviewim.blade.php’ değil miydi?”. Evet aynen öyleydi. Laravel Framework view fonksiyonu içerisine dosya uzantısını almaz yani biz view etmek istediğimiz dosyayı şu şekilde tanımlayacağız

Route::get('/', function () {
    return view('benimguzelviewim');
});

Arka Planda ne dönüyor? Laravel “return” edilecek bir view olduğunu gördüğü an koşa koşa “resources/views” dizinine ulaşıyor. Bağıra çığıra “Abi burada ‘benimguzelviewim’ adında bir View dosyası varmış. Uzantısı da ‘.blade.php’. Bana onu bir versene ya…” diyor. View dosyası derlenmeye başlıyor o sıra veriler toplarlanıyor eklemeler çıkarmalar yapılıyor. Amaç “.html” uzantılı, kullanıcı tarafından anlaşılır bir döküman oluşturmak. Bizim Laravel sinir tabi. Kullanıcı ekranın başında sayfayı bekliyor. Neyse sonra derleme bitiyor yüklüyorlar sırtına View dosyasını. Koşa koşa kullanıcının ekranına bırakıyor. Sonuç olarak WEB sayfası çalışır halde kullanıcıya sunulmuş oluyor.

Biz View dosyalarını oluştururken düzen isteyebiliriz. Kategori örneği üzerinden rotalama mantığı yürütmüştük. Şimdi de rotalama ve view dosyası oluşturmayı bir araya getirelim. View tarafında yapılacak işlemler bir “kategori” klasörü oluşturmak ve içerisine de ekleme, düzenleme, silme sayfalarını eklemek olabilir.

Çalışma alanımızın şu an ki hali aşağıdaki gibidir. ("*" içeren dosyalar/dizinler anlatılan bölümde oluşturulmuştur.)
/proje_adi
     /resources
          /views
               /kategori *
                    hepsinigoruntule.blade.php *
                    ekle.blade.php *
                    duzenle.blade.php *
                    sil.blade.php *
               benimguzelviewim.blade.php

Ama bir sorun var artık. Örneğin “hepsinigoruntule.blade.php” dosyasını view fonksiyonuna “hepsinigoruntule” diye yazamayacağız. Çünkü bir klasör altında bu view dosyası. Çözüm için “.” kullanacağız.

Route::get('/kategoriler', function () {
    return view('kategori.hepsinigoruntule');
});

Laravel artık “Burada bir şeyler var.” diyecek. Koşa koşa gittiği “resources/views” dizinini hatırlayın. Bu sefer yine koşa koşa “resources/views” dizinine ulaşacak fakat ilk sorduğu soru şu olacak “‘kategori’ dizinini nerede bulurum?”. Artık kahramanımız “resources/views/kategori” dizininende ve “hepsinigoruntule” dosyasını burada arayacak.

Eğer ki view dosyalarını oluştururken birden fazla klasör’ü iç içe oluşturursanız nokta sayısını arttırmanız yeterli olacaktır. Örneğin;

/proje_adi
     /resources
          /views
               /dosya1
                    /dosya2
                         /dosya3
                              viewdosyam.blade.php
Route::get('/viewdosyam', function () {
    return view('dosya1.dosya2.dosya3.viewdosyam');
});

Rehber Kaynakları;

Umarım ki “Laravel Rehberi – View Sistemi (Temel Seviye)” makalesi hoşunuza gitmiştir. Keyifli ve Bol Bug’lu Günler Dilerim 🙂

Yasin Erarslan

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir