Laravel - Uygulama Yapısı

Laravel'deki uygulama yapısı temelde bir projeye dahil edilen klasörlerin, alt klasörlerin ve dosyaların yapısıdır. Laravel'de bir proje oluşturduktan sonra, buradaki resimde gösterildiği gibi uygulama yapısına genel bir bakış elde ederiz.

Burada gösterilen anlık görüntü Laravel'in kök klasörüne atıfta bulunur: laravel-project. Çeşitli alt klasörleri ve dosyaları içerir. Klasörlerin ve dosyaların analizi, işlevsel yönleriyle birlikte aşağıda verilmiştir -

Uygulama

Uygulama klasörüdür ve projenin tüm kaynak kodunu içerir. Olayları, istisnaları ve ara yazılım bildirimini içerir. Uygulama klasörü, aşağıda açıklandığı gibi çeşitli alt klasörlerden oluşur -

Konsol

Konsol, Laravel için gerekli zanaatkar komutlarını içerir. Adlı bir dizin içerirCommands, tüm komutların uygun imzayla bildirildiği yer. DosyaKernal.php içinde bildirilen komutları çağırır Inspire.php.

Laravel'de belirli bir komutu çağırmamız gerekirse, bu dizinde uygun değişiklikleri yapmalıyız.

Etkinlikler

Bu klasör, proje için tüm olayları içerir.

Olaylar, etkinlikleri tetiklemek, hataları veya gerekli doğrulamaları artırmak ve daha fazla esneklik sağlamak için kullanılır. Laravel tüm olayları tek bir dizin altında tutar. Dahil edilen varsayılan dosyaevent.php tüm temel olayların ilan edildiği yer.

İstisnalar

Bu klasör, istisnaları işlemek için gereken tüm yöntemleri içerir. Dosyayı da içerirhandle.php bu, tüm istisnaları ele alır.

Http

Httpklasöründe denetleyiciler, ara yazılımlar ve uygulama istekleri için alt klasörler bulunur. Laravel, MVC tasarım modelini takip ettiğinden, bu klasör belirli dizinler için tanımlanan modeli, denetleyicileri ve görünümleri içerir.

Middleware alt klasör, filtre mekanizmasını ve yanıt ile istek arasındaki iletişimi içeren ara yazılım mekanizmasını içerir.

Requests alt klasör, uygulamanın tüm isteklerini içerir.

Meslekler

Jobsdizini Laravel uygulaması için sıraya alınan etkinlikleri korur. Temel sınıf, tüm İşler arasında paylaşılır ve bunları tek bir çatı altına yerleştirmek için merkezi bir konum sağlar.

Dinleyiciler

Dinleyiciler olay bağımlıdır ve olayları ve istisnaları işlemek için kullanılan yöntemleri içerirler. Örneğin,login bildirilen olay şunları içerir: LoginListener Etkinlik.

Politikalar

Politikalar, yetkilendirme mantığını içeren PHP sınıflarıdır. Laravel, bu alt klasör içindeki politika sınıfları içinde tüm yetkilendirme mantığını oluşturmak için bir özellik içerir.

Sağlayıcılar

Bu klasör, çekirdek sunucular için olayları kaydetmek ve bir Laravel uygulamasını yapılandırmak için gereken tüm hizmet sağlayıcıları içerir.

Önyükleme

Bu klasör, tüm uygulama önyükleme komut dosyalarını içerir. Yani bir alt klasör içerircache, bir web uygulamasını önbelleğe almak için ilişkili tüm dosyaları içerir. Dosyayı da bulabilirsinizapp.php, bootstrap için gerekli betikleri başlatır.

Yapılandırma

configklasörü, bir Laravel uygulamasının sorunsuz çalışması için gerekli çeşitli konfigürasyonları ve ilişkili parametreleri içerir. Yapılandırma klasöründe bulunan çeşitli dosyalar, buradaki resimde gösterildiği gibidir. Dosya adları, kendileriyle ilişkili işlevselliğe göre çalışır.

Veri tabanı

Adından da anlaşılacağı gibi bu dizin, veritabanı işlevleri için çeşitli parametreler içerir. Aşağıda verildiği gibi üç alt dizin içerir -

  • Seeds - Bu, birim test veritabanı için kullanılan sınıfları içerir.

  • Migrations - Bu klasör, web uygulamasında kullanılan veritabanını taşımak için sorgulara yardımcı olur.

  • Factories - Bu klasör, çok sayıda veri kaydı oluşturmak için kullanılır.

halka açık

Laravel uygulamasının başlatılmasına yardımcı olan kök klasördür. Aşağıdaki dosya ve klasörleri içerir -

  • .htaccess - Bu dosya sunucu yapılandırmasını verir.

  • javascript and css - Bu dosyalar varlık olarak kabul edilir.

  • index.php - Bu dosya, bir web uygulamasının başlatılması için gereklidir.

Kaynaklar

Kaynaklar dizini, web uygulamanızı geliştiren dosyaları içerir. Bu dizinde yer alan alt klasörler ve bunların amaçları aşağıda açıklanmıştır -

  • assets - Varlıklar klasörü, web uygulamasının stilini belirlemek için gerekli olan LESS ve SCSS gibi dosyaları içerir.

  • lang - Bu klasör, yerelleştirme veya içselleştirme için yapılandırmayı içerir.

  • views - Görünümler, son kullanıcılarla etkileşime giren ve MVC mimarisinde birincil rol oynayan HTML dosyaları veya şablonlardır.

Bir varlıklar klasörüne sahip olmak yerine kaynaklar dizininin düzleştirileceğini gözlemleyin. Aynı resimli temsili aşağıda gösterilmiştir -

Depolama

Bu, bir Laravel projesi çalışırken sıklıkla ihtiyaç duyulan tüm günlükleri ve gerekli dosyaları depolayan klasördür. Bu dizinde yer alan alt klasörler ve amaçları aşağıda verilmiştir -

  • app - Bu klasör, arka arkaya çağrılan dosyaları içerir.

  • framework - Sıklıkla çağrılan oturumları, önbelleği ve görünümleri içerir.

  • Logs - Tüm istisnalar ve hata günlükleri bu alt klasörde izlenir.

Testler

Tüm birim test durumları bu dizinde yer almaktadır. Test durumu sınıflarını adlandırmak için adlandırma kuralıcamel_case ve sınıfın işlevselliğine göre konvansiyonu takip eder.

SATICI

Laravel tamamen Composer bağımlılıklarına dayanır, örneğin Laravel kurulumunu kurmak veya üçüncü şahıs kütüphanelerini dahil etmek vb. Vendor klasörü tüm besteci bağımlılıklarını içerir.

Laravel, yukarıda belirtilen dosyalara ek olarak, GitHub yapılandırması, paketleri ve üçüncü taraf kitaplıkları gibi çeşitli işlevlerde birincil rol oynayan bazı diğer dosyaları da içerir.

Uygulama yapısına dahil edilen dosyalar aşağıda gösterilmiştir -