LARAVEL Dizin Yapısı

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 modelsdizin 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, appvarsayı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

appDizin, 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

bootstrapDizin ç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

configAdı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

databaseDizin veritabanı göç ve tohum içerir. İsterseniz, bu dizini bir SQLite veritabanı tutmak için de kullanabilirsiniz.

 

Genel Dizin

publicDizin 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

resourcesDizin 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

routesDizin 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.phpapi.phpconsole.phpchannels.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.phpRouteServiceProviderwebweb.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.phpRouteServiceProviderapi

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

storageDizin 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 appframeworkve logsdizinleri. appDizin uygulama tarafından oluşturulan tüm dosyaları depolamak için kullanılabilir. frameworkDizin deposu çerçevesi oluşturulan dosya ve önbelleklerini için kullanılır. Son olarak, logsdizinde 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/publicpublic/storagephp artisan storage:link

 

Test Dizini

testsDizin 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ı phpunitveya komutlarını kullanarak çalıştırabilirsiniz.php vendor/bin/phpunit

 

Satıcı Dizini

vendorDizin içeren Besteci bağımlılıkları.

 

Uygulama Dizini

Başvurunuzun çoğunluğu dizinde yer appalmaktadır. Varsayılan olarak, bu dizin altında Appad alanları bulunur ve PSR-4 otomatik yükleme standardını kullanarak Composer tarafından otomatik olarak yüklenir .

appDizin gibi ek çeşitli dizinleri içeren ConsoleHttpve Providers. Düşünün Consoleve Httpbaş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. ConsoleEderken dizin, sizin Artisan komutların tümünü içeren Httpdizin kontrolörleri, orta katman ve isteklerini içermektedir.

appSınıf oluşturmak için makeArtisan 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/Jobsmake:job

 

appDizindeki 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ın php artisan list make.

 

Konsol Dizini

ConsoleDizin 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:generatemake:eventEvents

 

İstisnalar Dizini

ExceptionsDizin 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, Handlersınıfı bu dizinde değiştirmeniz gerekir.

 

Http Dizini

HttpDizin 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:jobJobs

 

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:generatemake:listenerListenersUserRegisteredSendWelcomeEmail

 

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:mailMailMail::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:notificationNotifications

 

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:policyPolicies

 

Sağlayıcılar Rehberi

ProvidersDizin 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

Yorum Yollayın