نسخه:

ساختار دایرکتوری

معرفی

ساختار برنامه پیش فرض لاراول برای ارائه یک نقطه شروع عالی برای برنامه های بزرگ و کوچک در نظر گرفته شده است. اما شما آزاد هستید که برنامه خود را هر طور که دوست دارید سازماندهی کنید. لاراول تقریباً هیچ محدودیتی برای مکان هر کلاس خاص اعمال نمی کند - تا زمانی که Composer بتواند کلاس را به طور خودکار بارگذاری کند.

تازه با لاراول؟ در حالی که ما شما را در ساخت اولین برنامه لاراول خود راهنمایی می کنیم، بوت کمپ لاراول را برای یک تور عملی از چارچوب بررسی کنید .

دایرکتوری ریشه

فهرست برنامه ها

دایرکتوری app حاوی کد اصلی برنامه شما است. به زودی این فهرست را با جزئیات بیشتری بررسی خواهیم کرد. با این حال، تقریباً تمام کلاس های برنامه شما در این دایرکتوری خواهند بود.

دایرکتوری بوت استرپ

دایرکتوری bootstrap حاوی app.php فایلی است که چارچوب را بوت استرپ می کند. این دایرکتوری همچنین یک cache دایرکتوری را در خود جای داده است که حاوی فایل های فریمورک تولید شده برای بهینه سازی عملکرد مانند فایل های کش مسیر و خدمات است.

دایرکتوری پیکربندی

دایرکتوری config ، همانطور که از نام آن پیداست، حاوی تمام فایل های پیکربندی برنامه شما است. خواندن تمام این فایل ها و آشنایی با تمام گزینه های موجود ایده خوبی است.

دایرکتوری پایگاه داده

دایرکتوری database شامل مهاجرت های پایگاه داده، کارخانه های مدل و دانه های شما است. در صورت تمایل، می توانید از این دایرکتوری برای نگهداری پایگاه داده SQLite نیز استفاده کنید.

فهرست عمومی

دایرکتوری public حاوی index.php فایلی است که نقطه ورود همه درخواست هایی است که وارد برنامه شما می شوند و بارگذاری خودکار را پیکربندی می کند. این فهرست دارایی های شما مانند تصاویر، جاوا اسکریپت و CSS را نیز در خود جای می دهد.

فهرست منابع

فهرست شامل نماهای resources شما و همچنین دارایی های خام و غیرکامپایل نشده شما مانند CSS یا جاوا اسکریپت است.

فهرست مسیرها

فهرست routes شامل تمام تعاریف مسیر برای برنامه شما است. به طور پیش فرض، دو فایل مسیر با لاراول گنجانده شده است: web.php و console.php .

این web.php فایل حاوی مسیرهایی است که لاراول در web گروه میان‌افزار قرار می‌دهد که وضعیت جلسه، حفاظت CSRF و رمزگذاری کوکی را فراهم می‌کند. اگر برنامه شما یک API بدون حالت، RESTful ارائه نمی دهد، به احتمال زیاد همه مسیرهای شما در web.php فایل تعریف می شوند.

فایل console.php جایی است که شما می توانید تمام دستورات کنسول مبتنی بر بسته شدن خود را تعریف کنید. هر بسته به یک نمونه فرمان محدود می شود که به یک رویکرد ساده برای تعامل با روش های IO هر فرمان اجازه می دهد. اگرچه این فایل مسیرهای HTTP را تعریف نمی کند، نقاط ورودی (مسیرها) مبتنی بر کنسول را به برنامه شما تعریف می کند.

به صورت اختیاری، می‌توانید فایل‌های مسیر اضافی را برای مسیرهای API ( api.php ) و کانال‌های پخش ( channels.php )، از طریق دستورات install:api و install:broadcasting Artisan نصب کنید.

این api.php فایل حاوی مسیرهایی است که در نظر گرفته شده بدون حالت باشند، بنابراین درخواست‌هایی که از طریق این مسیرها وارد برنامه می‌شوند، از طریق توکن‌ها احراز هویت می‌شوند و به وضعیت جلسه دسترسی ندارند.

این channels.php فایل جایی است که می توانید تمام کانال های پخش رویداد را که برنامه شما پشتیبانی می کند ثبت کنید.

فهرست ذخیره سازی

دایرکتوری storage شامل لاگ های شما، قالب های Blade کامپایل شده، جلسات مبتنی بر فایل، کش فایل ها و سایر فایل های تولید شده توسط فریم ورک است. این دایرکتوری به app , framework و logs دایرکتوری ها تفکیک شده است. دایرکتوری app ممکن است برای ذخیره فایل های تولید شده توسط برنامه شما استفاده شود. دایرکتوری framework برای ذخیره فایل‌ها و کش‌های ایجاد شده از چارچوب استفاده می‌شود. در نهایت، logs دایرکتوری حاوی فایل های گزارش برنامه شما است.

دایرکتوری storage/app/public ممکن است برای ذخیره فایل های تولید شده توسط کاربر، مانند آواتارهای نمایه، که باید برای عموم قابل دسترسی باشد، استفاده شود. شما باید یک پیوند نمادین ایجاد کنید که در public/storage آن به این دایرکتوری اشاره می کند. می توانید با استفاده از دستور Artisan پیوند را ایجاد کنید php artisan storage:link .

دایرکتوری تست ها

فهرست tests شامل تست های خودکار شماست. نمونه آزمایش‌های واحد آفت یا PHPUnit و آزمایش‌های ویژگی خارج از جعبه ارائه می‌شوند. هر کلاس آزمایشی باید با کلمه پسوند باشد Test . می توانید تست های خود را با استفاده از دستورات /vendor/bin/pest یا اجرا کنید /vendor/bin/phpunit . یا اگر می‌خواهید نمایش دقیق‌تر و زیباتری از نتایج آزمون خود داشته باشید، می‌توانید تست‌های خود را با استفاده از php artisan test دستور Artisan اجرا کنید.

فهرست فروشنده

دایرکتوری حاوی وابستگی های Composer vendor شما است .

فهرست برنامه ها

اکثر برنامه های شما در app دایرکتوری قرار دارند. به طور پیش‌فرض، این فهرست در زیر فضای نام قرار دارد App و توسط Composer با استفاده از استاندارد بارگیری خودکار PSR-4 بارگیری می‌شود .

به طور پیش فرض، app دایرکتوری شامل Http ، Models و Providers دایرکتوری ها است. با این حال، با گذشت زمان، با استفاده از دستورات make Artisan برای تولید کلاس‌ها، دایرکتوری‌های متنوع دیگری در داخل فهرست برنامه تولید می‌شوند. برای مثال، app/Console دایرکتوری وجود نخواهد داشت تا زمانی که make:command دستور Artisan را برای تولید یک کلاس فرمان اجرا کنید.

هر دو دایرکتوری Console و Http دایرکتوری در بخش های مربوطه خود در زیر توضیح داده شده اند، اما فکر کنید که Console و Http دایرکتوری ها یک API در هسته برنامه شما ارائه می دهند. پروتکل HTTP و CLI هر دو مکانیسم هایی برای تعامل با برنامه شما هستند، اما در واقع حاوی منطق برنامه نیستند. به عبارت دیگر، آنها دو راه برای صدور دستورات به برنامه شما هستند. دایرکتوری Console شامل تمام دستورات Artisan شما است، در حالی که Http دایرکتوری شامل کنترلرها، میان افزارها و درخواست های شما می باشد.

بسیاری از کلاس های دایرکتوری را app می توان توسط Artisan از طریق دستورات تولید کرد. برای بررسی دستورات موجود، php artisan list make دستور را در ترمینال خود اجرا کنید.

دایرکتوری پخش

فهرست Broadcasting شامل تمام کلاس های کانال پخش برای برنامه شما است. این کلاس ها با استفاده از make:channel دستور تولید می شوند. این دایرکتوری به طور پیش فرض وجود ندارد، اما زمانی که اولین کانال خود را ایجاد کنید برای شما ایجاد می شود. برای کسب اطلاعات بیشتر درباره کانال‌ها، مستندات مربوط به پخش رویداد را بررسی کنید .

فهرست راهنمای کنسول

دایرکتوری Console شامل تمام دستورات Artisan سفارشی برای برنامه شما است. این دستورات ممکن است با استفاده از دستور تولید شوند make:command .

فهرست رویدادها

این دایرکتوری به صورت پیش فرض وجود ندارد، اما با دستورات event:generate و make:event Artisan برای شما ایجاد می شود. دایرکتوری کلاس های رویداد را Events در خود جای می دهد . ممکن است از رویدادها برای هشدار دادن به سایر بخش‌های برنامه شما مبنی بر وقوع یک عمل خاص استفاده شود که انعطاف‌پذیری و جداسازی زیادی را فراهم می‌کند.

فهرست استثناها

دایرکتوری Exceptions شامل کنترل کننده استثنای برنامه شما است و همچنین مکان مناسبی برای قرار دادن هر گونه استثنایی است که توسط برنامه شما ایجاد شده است. اگر می‌خواهید نحوه ثبت یا ارائه استثناهای خود را سفارشی کنید، باید Handler کلاس را در این فهرست تغییر دهید.

دایرکتوری Http

دایرکتوری Http شامل کنترلرها، میان افزارها و درخواست های فرم شما است. تقریباً تمام منطق رسیدگی به درخواست هایی که وارد برنامه شما می شوند در این دایرکتوری قرار می گیرند.

فهرست مشاغل

این دایرکتوری به صورت پیش فرض وجود ندارد، اما در صورت اجرای make:job دستور Artisan برای شما ایجاد می شود. دایرکتوری مشاغل قابل صف Jobs برای درخواست شما را در خود جای می دهد . مشاغل ممکن است توسط برنامه شما در صف قرار گیرند یا به طور همزمان در چرخه عمر درخواست فعلی اجرا شوند. کارهایی که به صورت همزمان در طول درخواست جاری اجرا می شوند، گاهی اوقات به عنوان "فرمان" نامیده می شوند زیرا آنها اجرای الگوی فرمان هستند .

فهرست شنوندگان

این دایرکتوری به طور پیش فرض وجود ندارد، اما اگر دستورات event:generate یا make:listener Artisan را اجرا کنید برای شما ایجاد می شود. دایرکتوری Listeners شامل کلاس هایی است که رویدادهای شما را مدیریت می کنند . شنوندگان رویداد یک نمونه رویداد را دریافت می کنند و در پاسخ به رویدادی که اخراج می شود، منطق را انجام می دهند. برای مثال، یک UserRegistered رویداد ممکن است توسط شنونده مدیریت شود SendWelcomeEmail .

فهرست پست الکترونیکی

این دایرکتوری به صورت پیش فرض وجود ندارد، اما در صورت اجرای make:mail دستور Artisan برای شما ایجاد می شود. فهرست Mail شامل تمام کلاس های شماست که نشان دهنده ایمیل های ارسال شده توسط برنامه شما هستند. اشیاء نامه به شما این امکان را می دهند که تمام منطق ساخت یک ایمیل را در یک کلاس ساده و منفرد که ممکن است با استفاده از این Mail::send روش ارسال شود، کپسوله کنید.

دایرکتوری مدل ها

دایرکتوری Models شامل تمام کلاس های مدل Eloquent شما است . ORM Eloquent همراه با لاراول یک پیاده سازی ActiveRecord زیبا و ساده برای کار با پایگاه داده شما ارائه می دهد. هر جدول پایگاه داده یک "مدل" مربوطه دارد که برای تعامل با آن جدول استفاده می شود. مدل‌ها به شما امکان می‌دهند داده‌های جداول خود را جستجو کنید و همچنین رکوردهای جدیدی را در جدول وارد کنید.

فهرست اعلان ها

این دایرکتوری به صورت پیش فرض وجود ندارد، اما در صورت اجرای make:notification دستور Artisan برای شما ایجاد می شود. فهرست Notifications شامل تمام اعلان‌های "معامله" است که توسط برنامه شما ارسال می‌شود، مانند اعلان‌های ساده درباره رویدادهایی که در برنامه شما اتفاق می‌افتد. ویژگی اعلان لاراول ارسال اعلان‌ها را از طریق انواع درایورها مانند ایمیل، اسلک، پیامک یا ذخیره شده در پایگاه داده خلاصه می‌کند.

فهرست سیاست ها

این دایرکتوری به صورت پیش فرض وجود ندارد، اما در صورت اجرای make:policy دستور Artisan برای شما ایجاد می شود. دایرکتوری Policies شامل کلاس های سیاست مجوز برای برنامه شما است. خط مشی ها برای تعیین اینکه آیا کاربر می تواند یک عمل معین را در برابر یک منبع انجام دهد یا خیر استفاده می شود.

فهرست ارائه دهندگان

فهرست Providers شامل همه ارائه دهندگان خدمات برای برنامه شما است. ارائه دهندگان خدمات با اتصال سرویس ها در کانتینر سرویس، ثبت رویدادها یا انجام هر کار دیگری برای آماده سازی برنامه شما برای درخواست های دریافتی، برنامه شما را بوت می کنند.

در یک برنامه جدید لاراول، این دایرکتوری از قبل حاوی چندین ارائه دهنده خواهد بود. در صورت نیاز می توانید ارائه دهندگان خود را به این فهرست اضافه کنید.

دایرکتوری قوانین

این دایرکتوری به صورت پیش فرض وجود ندارد، اما در صورت اجرای make:rule دستور Artisan برای شما ایجاد می شود. دایرکتوری Rules حاوی اشیاء قانون اعتبارسنجی سفارشی برای برنامه شما است. قوانین برای کپسوله کردن منطق اعتبارسنجی پیچیده در یک شی ساده استفاده می شود. برای اطلاعات بیشتر، اسناد اعتبار سنجی را بررسی کنید .