LARAVEL Dizin Yapısı
Dizin Yapısı
Giriş
Varsayılan Laravel uygulama yapısı hem büyük hem de küçük uygulamalar için harika bir başlangıç noktası sağlamayı amaçlamaktadır. Elbette, dilediğiniz halde başvurunuzu organize etmekte serbestsiniz. Laravel, besteci sınıfı otomatik olarak yükleyebildiği sürece, herhangi bir sınıfın bulunduğu yerde hemen hemen hiç kısıtlama getirmez.
Model Dizini Nerede?
Laravel ile çalışmaya başlarken, pek çok geliştirici bir models
dizin eksikliğinden şaşkına dönüyor. Bununla birlikte, böyle bir dizinin eksikliği kasıtlıdır. "Modeller" sözcüğünü belirsiz buluyoruz, çünkü birçok farklı insana farklı şeyler demektir. Bazı geliştiriciler, bir uygulamanın "model" i bütün iş mantığının toplamı olarak söz ederken, bazıları "modeller" i bir ilişkisel veritabanı ile etkileşim kuran sınıflar olarak ifade eder.
Bu nedenle, app
varsayılan olarak Gizli modelleri dizine yerleştirmeyi ve seçtikleri takdirde geliştiricinin bunları başka bir yere koymasına izin veririz.
Kök Dizini
Uygulama Dizini
app
Dizin, tahmin edebileceğiniz gibi, uygulamanın çekirdek kodu içerir. Bu dizini yakında daha ayrıntılı olarak keşfedeceğiz; Ancak, uygulamanızdaki hemen hemen tüm sınıflar bu dizinde olacaktır.
Önyükleme Dizini
bootstrap
Dizin çerçevesini bootstrap ve Özdevinimli yapılandırmak dosyaları içerir. Bu dizinde ayrıca cache
, rota ve hizmetler önbellek dosyaları gibi performans optimizasyonu için çerçeve oluşturulan dosyaları içeren bir dizin bulunur.
Yapılandırma Rehberi
config
Adından da anlaşılacağı gibi dizin, uygulamanızın yapılandırma dosyalarının tümünü içerir. Bu dosyaların tümünü incelemek ve mevcut tüm seçenekleri öğrenmek harika bir fikirdir.
Veritabanı Rehberi
database
Dizin veritabanı göç ve tohum içerir. İsterseniz, bu dizini bir SQLite veritabanı tutmak için de kullanabilirsiniz.
Genel Dizin
public
Dizin içeren başvurunuzu giren tüm istekler için giriş noktasıdır dosyayı. Bu dizinde ayrıca resimler, JavaScript ve CSS gibi varlıklarınız bulunur.index.php
Kaynaklar Rehberi
resources
Dizin görüşlerinizi yanı sıra AZ, SASS veya JavaScript gibi ham, derlenmemiş varlıkları içerir. Bu dizinde ayrıca tüm dil dosyalarınız bulunur.
Rotalar Dizini
routes
Dizin uygulamanız için rota tanımları tümünü içerir. Varsayılan olarak, çok sayıda güzergah dosyaları laravel bulunur: , , ve .web.php
api.php
console.php
channels.php
Dosya yolları içeren yerler oturum durumu, CSRF koruması ve çerez şifreleme sağlar katman grubu. Uygulamanız stateless, RESTful API sunmuyorsa, tüm rotalarınız dosyada büyük olasılıkla tanımlanacaktır .web.php
RouteServiceProvider
web
web.php
Dosya yolları içeren yerler oran sınırlayıcı sağlayan ara katman grubu. Bu yolların stateless olması amaçlanmıştır, bu nedenle bu yollardan uygulamaya girme talepleri, belirteçler aracılığıyla kimlik doğrulaması yapılmayı ve oturum durumuna erişimi olmamayı amaçlar.api.php
RouteServiceProvider
api
Eğer Kapatma tabanlı konsol komutlarının tüm tanımlayabilir nerede dosyasıdır. Her Kapanış, her komutun GÇ yöntemleriyle etkileşime girmek için basit bir yaklaşım sağlayan bir komut örneğine bağlıdır. Bu dosya HTTP yollarını tanımlamasa da, konsol tabanlı giriş noktalarını (yollar) uygulamanıza tanımlar.console.php
Eğer uygulama destekleyen olay yayın kanallarının tüm kayıt nerelerde dosyasıdır.channels.php
Depolama Dizini
storage
Dizin derlenmiş Blade şablonları, dosya bazlı oturumlar, dosya önbelleğe ve çerçeve tarafından oluşturulan diğer dosyaları içermektedir. Bu dizin içine ayrılmış olup app
, framework
ve logs
dizinleri. app
Dizin uygulama tarafından oluşturulan tüm dosyaları depolamak için kullanılabilir. framework
Dizin deposu çerçevesi oluşturulan dosya ve önbelleklerini için kullanılır. Son olarak, logs
dizinde uygulamanızın günlük dosyaları bulunur.
Dizin herkesin erişimine açık olmalıdır tür profil avatar olarak mağaza kullanıcı tarafından oluşturulan dosyalar, için kullanılabilir. Bu dizine işaret eden bir sembolik bağ oluşturmalısınız. Komutu kullanarak bağlantı oluşturabilirsiniz.storage/app/public
public/storage
php artisan storage:link
Test Dizini
tests
Dizin otomatik testleri içerir. Örnek bir PHPUnit kutudan çıktı. Her sınama sınıfı kelimeyle sonlandırılmalıdır Test
. Sınamalarınızı phpunit
veya komutlarını kullanarak çalıştırabilirsiniz.php vendor/bin/phpunit
Satıcı Dizini
vendor
Dizin içeren Besteci bağımlılıkları.
Uygulama Dizini
Başvurunuzun çoğunluğu dizinde yer app
almaktadır. Varsayılan olarak, bu dizin altında App
ad alanları bulunur ve PSR-4 otomatik yükleme standardını kullanarak Composer tarafından otomatik olarak yüklenir .
app
Dizin gibi ek çeşitli dizinleri içeren Console
, Http
ve Providers
. Düşünün Console
ve Http
başvurunuzun çekirdek içine bir API sağlama gibi dizinlere. HTTP protokolü ve CLI, uygulamanızla etkileşim kurmak için iki mekanizma olup aslında uygulama mantığı içermez. Başka bir deyişle, bunlar uygulamanıza komutlar vermek için basitçe iki yol sunar. Console
Ederken dizin, sizin Artisan komutların tümünü içeren Http
dizin kontrolörleri, orta katman ve isteklerini içermektedir.
app
Sınıf oluşturmak için make
Artisan komutlarını kullanırken dizinde çeşitli diğer dizinler oluşturulur . Örneğin, bir iş sınıfı oluşturmak için Esnaf komutunu yürürlüğe koyana kadar dizin mevcut olmayacaktır .app/Jobs
make:job
app
Dizindeki birçok sınıf, Artisan tarafından komutlarla oluşturulabilir. Kullanılabilir komutları gözden geçirmek için terminaldeki komutu çalıştırınphp artisan list make
.
Konsol Dizini
Console
Dizin Artisan uygulamanız için komutları özel tümünü içerir. Bu komutlar komut kullanılarak oluşturulabilir . Bu dizinde ayrıca, Artisan komutlarınızın kayıtlı olduğu ve zamanlanmış görevlerinizin tanımlandığı konsol çekirdeğiniz bulunur.make:command
Etkinlik Rehberi
Bu dizin varsayılan olarak mevcut değildir, ancak Sizin ve Artisan komutlarınız tarafından oluşturulacaktır . Dizin, tahmin edebileceğiniz gibi, evler olay sınıflarını . Olaylar, uygulamanızın diğer bölümlerini belirli bir eylemin gerçekleştiğini bildirmek için kullanılabilir; bu da çok fazla esneklik ve ayırma sağlar.event:generate
make:event
Events
İstisnalar Dizini
Exceptions
Dizin uygulamanızın istisna işleyicisi içeriyor ve ayrıca uygulama tarafından gönderilen istisnaları yerleştirmek için iyi bir yerdir. İstisnaların günlüğe kaydedilip gösterilmediğini özelleştirmek isterseniz, Handler
sınıfı bu dizinde değiştirmeniz gerekir.
Http Dizini
Http
Dizin kontrolörleri, ara katman ve form isteklerini içermektedir. Uygulamanıza giren istekleri işleyen mantıkların neredeyse tamamı bu dizine yerleştirilecektir.
İş Rehberi
Bu dizin varsayılan olarak mevcut değildir, ancak Artisan komutunu çalıştırırsanız sizin için oluşturulacaktır . Dizin evler queueable işleri uygulamanız için. İşler, uygulamanız tarafından sıraya sokulabilir veya mevcut istek yaşam döngüsü içinde eşzamanlı olarak çalıştırılabilir. Geçerli istek sırasında eşzamanlı olarak çalışan işler, komut deseninin bir uygulaması olduğundan bazen "komutlar" olarak anılır .make:job
Jobs
Dinleyiciler Rehberi
Bu dizin varsayılan olarak mevcut değildir, ancak veya Esnaf komutlarını çalıştırırsanız sizin için oluşturulacaktır . Dizin işlemek sınıfları içerir olayları . Olay dinleyicileri bir olay örneği alır ve tetiklenen olaya tepki olarak mantık yürütürler. Örneğin, bir olay dinleyicisi tarafından işlenebilir.event:generate
make:listener
Listeners
UserRegistered
SendWelcomeEmail
Posta Dizini
Bu dizin varsayılan olarak mevcut değildir, ancak Artisan komutunu çalıştırırsanız sizin için oluşturulacaktır . Dizin uygulama tarafından gönderilen e-postaları temsil Sınıflarınızdan tümünü içerir. Posta nesneleri, yöntemi kullanarak gönderilebilecek, tek bir basit sınıfta bir e-posta oluşturmanın tüm mantığını sarmalamanızı sağlar .make:mail
Mail
Mail::send
Bildirimler Dizini
Bu dizin varsayılan olarak mevcut değildir, ancak Artisan komutunu çalıştırırsanız sizin için oluşturulacaktır . Dizin böyle uygulamanıza içinde gerçekleşmesi olaylar hakkında basit bildirimleri gibi, uygulamanız tarafından gönderilen "işlem" bildirimleri tümünü içerir. Laravel'in bildirim özellikleri, e-posta, Gevşeklik, SMS gibi çeşitli sürücüler üzerinden bildirim gönderen veya bir veritabanında depolanan özetleri içermektedir.make:notification
Notifications
Politikalar Rehberi
Bu dizin varsayılan olarak mevcut değildir, ancak Artisan komutunu çalıştırırsanız sizin için oluşturulacaktır . Dizin uygulamanız için yetkilendirme ilkesi sınıflarını içerir. Politikalar, bir kullanıcının bir kaynağa karşı belirli bir işlemi gerçekleştirebileceklerini belirlemek için kullanılır. Daha fazla bilgi için yetkilendirme belgelerine bakın .make:policy
Policies
Sağlayıcılar Rehberi
Providers
Dizin tümünü içerir servis sağlayıcılar uygulamanız için. Servis sağlayıcılar, servis konteynerindeki servisleri bağlayarak, etkinlikleri kaydederek veya gelen istekler için uygulamanızı hazırlamak için diğer görevleri yerine getirerek uygulamanızın önyüklemesini yapar.
Yeni bir Laravel uygulamasında, bu dizinde zaten birkaç sağlayıcı bulunur. Kendi sağlayıcılarınızı bu dizine gerektiği gibi ekleyebilirsiniz.
Henüz Yorum Yapılmamış, İlk Yorumu Siz Yapın