Laravel Rehberi – Temel Dosya ve Dizin Yapısı

Başlarken;

Biraz olsun dönüp bakıyorum da sanırım uzun zamandır konu atmayı bırakmışım. Temel seviyede de olsa bir “Laravel Rehberi” sürecine başlamıştım. ” Laravel Rehberi – Giriş “ başlıklı bir makale yayınlamıştım. Bu makale de kurulumunu yapıp çalışır hale getirdiğimiz Laravel Projemizin dosyalar ve dizinlerine göz atacağız. Bu makalenin amacı, temel seviyede Laravel Dosya ve Dizin yapısını öğretmektir.

Laravel; kullanımı ve öğrenmesi açısından orta düzey bir frameworktür. Bu cümleyi her Laravel Rehberimde göreceksiniz. Öğrenmekten kaçmayın. Zorluklar ile öğrenmek biz yazılımcıları daha ileriye taşıyacağına inanıyorum. Bu rehberler ile size bir şeyler katmak dileğiyle başlayalım 🙂

Temel Gereksinimler;

Temel Dosya Dizini;

Temel Laravel Dosya ve Dizin Yapısı

“app” Dizini;

Laravel Dosya ve Dizin Yapısı – “app” Dizini

Bildiğimiz üzere Laravel; MVC tabanlı bir Framework. “app” dizini MVC yapısının M (Model) ve C (Controller) alanlarını içerir. Ek olarak rehberlerimin devamında da ilgileneceğimiz “Middleware” kavramı bu dizinde bulunur. Temel olarak middleware ile kullanıcı yetki kontrollerini sağlayacağız diyelim şimdilik 🙂

M (Model) Dizin Yolu
     -> proje_adi/app/model_adi.php
     -> Laravel Framework üzerinde model tanımlamaları tekil isimler ile yapılır ve bu isimler büyük harf ile başlar. Yapıda da göründüğü üzere örneğin "User.php".
C (Controller) Dizin Yolu
     -> proje_adi/app/Http/Controllers/controller_adi.php
     -> Laravel Framework üzerinde controller tanımlamaları şu şekilde tanımlanması uygun görülür. Örneğin "HomeController.php".
Middleware Dizin Yolu
     -> proje_adi/app/Http/Middleware/middleware_adi.php

“bootstrap” Dizini;

Adı tanıdık geliyor farkındayım. Laravel Framework’e başladığımda benim de kafam fazlası ile karışmıştı. Bu dizinin tasarım taraflı “Bootstrap” ile hiçbir alakası bulunmuyor 😀 Daha çok Türkçe karşılığı olarak “Önyükleyici” gibi düşünebiliriz. Zaten amacı bu şekilde düşününce apaçık ele veriyor kendini. Dizin otomatik yüklenmesi gereken önyükleme ve yapılandırma dosyalarını içeriyor. Performans elde etmek için oluşturulan “cache” dosyaları hosting’e yükleme sırasında başımıza bela olabiliyor. Önüne tabi ki de ilerleyen rehberlerimde geçeceğiz 🙂

“config” Dizini;

Laravel Framework’ün çalışması için gerekli olan “Ayar ve Yapılandırma” dosyalarını içeriyor. Bu ayarlar ile temel seviyede ilgilenmeyeceğiz. “.env” dosyası bizim için yeterli olacak fakat yine de kurcalayabilirsiniz. Birşeyler bozulmadan toplamayı öğrenemeyiz 🙂

“database” Dizini;

Laravel Dosya ve Dizin Yapısı – “database” Dizini

İlk görünce aklınıza gelen şeylerden birisi “Hmm… Sanırım Model yapım burada olacak.” olabilir. Ama hayır Model dosyaları biliyorsunuz ki “app” dizini altındaydı. “database” dizini Laravel Framework’ün bize sunduğu “migration” ve “seeding” kavramlarını içeriyor. (Bu kavramları ayrıntılı bir şekilde irdeleyeceğiz.)

“public” Dizini;

Laravel Dosya ve Dizin Yapısı – “public” Dizini

Projenin temel çalışma alanı desek yeridir. Kullanıcı tarafından Laravel Framework’ün çalışmasını tetikleyen “index.php” ve kullanıcıya sunulan her içerik burada bulunur. CSS, JS, Fotoğraf, Resim, Video v.b. dosyaları içerir. HTML dosyaları yani MVC yapısının V (View) dosyaları bu dizinde bulunmaz.

“resources” Dizini;

Laravel Dosya ve Dizin Yapısı – “resources” Dizini

Sonunda View yapısına da ulaştık. Laravel Framework tarafından “render” edilecek HTML dosyaları bu dizinde bulunur. Fakat dosya uzantılarına dikkat etmemiz gerekiyor. Çünkü Laravel sadece “.blade.php” uzantısını “render” edebliyor.

V (View) Dizin Yolu
     -> proje_adi/resources/views/view_adi.blade.php

“routes” Dizini;

Laravel Dosya ve Dizin Yapısı – “routes” Dizini

MVC yapısında kullanılan “Router” kavramını hatırlarsınız. Laravel Framework’de “Router” işlemleri bu dizinde yapılır. Temel rota işlemleri ise “web.php” üzerinde tanımlanır. (Diğer dosyalara ileride değineceğiz.)

“storage” Dizini;

Derlenmiş (“render” edilmiş) “.blade.php” şablonlarını, log (Günlük) dosyalarını, dosya türünde tutulan session ve cache yapılarını içerir.

“test” Dizini;

PHPUnit yapısını kullanarak Laravel Projesini test etmeyi sağlayan dizin diyebilirim sanırım. Aslına bakarsanız pek kullandığım söylenemez bu alanı 😀

“vendor” Dizini;

Composer tarafından otomatik olarak indirilen ve Laravel Framework’ün çalışması için gerekli olan dosya ve dökümanlar bulunur. Tabi bunlara projede kullanacağınız ve ek olarak indireceğiniz diğer paketlerin dosyaları ve dökümanları buraya kaydedilecektir.

Başlangıç İçin Gerekli Olan Dizin ve Dosyalar;

  • “app” Dizini
    • M (Model) Yapısını içerir.
    • C (Controller) Yapısını içerir.
    • Middleware yapısını içerir.
  • “database” Dizini
    • “migration” Yapısını içerir.
  • “public” Dizini
    • Kullanıcıya sunulacak dosya ve dökümanları içerir.
  • “resources” Dizini
    • V (View) Yapısını içerir.
  • “routes” Dizini
    • R (Router) Yapısını içerir.
  • “.env” Dosyası
    • Projemizin temel bilgilerini içerir. Örneğin;
      • Proje Adı
      • Proje URL Bilgisi
      • Proje Debug Modu
      • Temel Database Bağlantı Bilgileri
      • Temel Mail Bilgileri

Umarım ki “Laravel Rehberi – Temel Dosya ve Dizin Yapısı” 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