ساختار برنامه
معرفی
ساختار برنامه پیش فرض لاراول برای ارائه یک نقطه شروع عالی برای برنامه های بزرگ و کوچک در نظر گرفته شده است. البته، شما آزاد هستید که برنامه خود را هر طور که دوست دارید سازماندهی کنید. لاراول تقریباً هیچ محدودیتی برای مکان هر کلاس خاص اعمال نمی کند - تا زمانی که Composer بتواند کلاس را به طور خودکار بارگذاری کند.
دایرکتوری ریشه
دایرکتوری ریشه یک نصب جدید لاراول حاوی انواع پوشه ها است:
دایرکتوری
app
، همانطور که ممکن است انتظار داشته باشید، حاوی کد اصلی برنامه شما است.
به زودی این پوشه را با جزئیات بیشتری بررسی خواهیم کرد.
پوشه
bootstrap
حاوی چند فایل است که فریم ورک را بوت می کنند و بارگذاری خودکار را پیکربندی می کنند.
دایرکتوری
config
، همانطور که از نام آن پیداست، حاوی تمام فایل های پیکربندی برنامه شما است.
پوشه
database
حاوی مهاجرت پایگاه داده و seeds شما است.
دایرکتوری
public
شامل کنترلر جلویی و دارایی های شما (تصاویر، جاوا اسکریپت، CSS و غیره) است.
فهرست
resources
شامل نماها، داراییهای خام (LESS، SASS، CoffeeScript) و فایلهای "زبان" شما است.
دایرکتوری
storage
شامل قالب های Blade کامپایل شده، جلسات مبتنی بر فایل، کش فایل ها و سایر فایل های تولید شده توسط فریم ورک است.
فهرست
tests
شامل تست های خودکار شماست.
دایرکتوری
vendor
حاوی وابستگی های Composer شما است.
فهرست برنامه
"گوشت" برنامه شما در
app
دایرکتوری زندگی می کند.
به طور پیشفرض، این فهرست در زیر فضای نام قرار دارد
App
و توسط Composer با استفاده از
استاندارد بارگیری خودکار PSR-4
بارگیری میشود .
می توانید این فضای نام را با استفاده از
app:name
دستور Artisan
تغییر دهید .
دایرکتوری
app
با انواع دایرکتوری های اضافی مانند
Console
،
Http
و و ارسال می شود
Providers
.
Console
و
Http
دایرکتوری ها را به عنوان یک API در "هسته" برنامه شما
در نظر بگیرید .
پروتکل HTTP و CLI هر دو مکانیسم هایی برای تعامل با برنامه شما هستند، اما در واقع حاوی منطق برنامه نیستند.
به عبارت دیگر، آنها به سادگی دو راه برای صدور دستورات به برنامه شما هستند.
دایرکتوری
Console
شامل تمام دستورات Artisan شما است، در حالی که
Http
دایرکتوری شامل کنترلرها، فیلترها و درخواست های شما می باشد.
دایرکتوری
Commands
، البته، دستورات برنامه شما را در خود جای می دهد.
دستورات نشان دهنده کارهایی هستند که می توانند توسط برنامه شما در صف قرار گیرند و همچنین کارهایی که می توانید به طور همزمان در چرخه عمر درخواست فعلی اجرا کنید.
دایرکتوری
Events
، همانطور که ممکن است انتظار داشته باشید، کلاس های رویداد را در خود جای داده است.
البته استفاده از کلاس ها برای نمایش رویدادها لازم نیست.
با این حال، اگر انتخاب کنید از آنها استفاده کنید، این دایرکتوری محل پیش فرضی است که توسط خط فرمان Artisan ایجاد می شود.
دایرکتوری
Handlers
شامل کلاس های کنترل کننده برای دستورات و رویدادها است.
هندلرها یک فرمان یا رویداد را دریافت می کنند و در پاسخ به آن فرمان یا رویدادی که شلیک می شود، منطق را انجام می دهند.
دایرکتوری
Services
شامل سرویسهای «کمککننده» مختلفی است که برنامه شما برای عملکرد به آن نیاز دارد.
به عنوان مثال،
Registrar
سرویس ارائه شده با لاراول مسئول اعتبارسنجی و ایجاد کاربران جدید برنامه شما است.
مثالهای دیگر ممکن است سرویسهایی برای تعامل با APIهای خارجی، سیستمهای معیار یا حتی سرویسهایی باشد که دادهها را از برنامه کاربردی خود جمعآوری میکنند.
دایرکتوری
Exceptions
شامل کنترل کننده استثنای برنامه شما است و همچنین مکان خوبی برای چسباندن هر گونه استثنایی است که توسط برنامه شما ایجاد شده است.
توجه: بسیاری از کلاس های دایرکتوری را
app
می توان توسط Artisan از طریق دستورات تولید کرد. برای بررسی دستورات موجود،php artisan list make
دستور را در ترمینال خود اجرا کنید.
فضای نام برنامه شما
همانطور که در بالا توضیح داده شد، فضای نام پیش فرض برنامه
App
;
با این حال، می توانید این فضای نام را با نام برنامه خود تغییر دهید، که به راحتی از طریق
app:name
دستور Artisan انجام می شود.
به عنوان مثال، اگر نام برنامه شما "SocialNet" باشد، دستور زیر را اجرا می کنید:
php artisan app:name SocialNet