- چهارشنبه 9 آبان 1397 ساعت 21:06
- 5.6.29
- کامل شده
- منقضی شده
مقدمه
ساختار پیشفرض برای اپلیکیشنهای لاراول به گونهای ارائه شده است تا نقطه شروع مناسبی هم برای اپلیکیشنهای بزرگ و هم برای اپلیکیشنهای کوچک باشد. البته، شما آزاد هستید تا به هر نحوی که تمایل داشته باشید، اپلیکیشن خود را ساماندهی کنید. تا زمانی که کامپوزر بتواند یک کلاس مشخص را به صورت خودکار لود کند، لاراول تقریبا هیچ محدودیتی برای محلی که کلاس آن قرار دارد، اعمال نمی کند.
دایرکتوری Models کجاست؟
بسیاری از توسعهدهندهها هنگامی کار با لاراول را شروع میکنند، به خاطر عدم وجود دایرکتوری models گیج میشوند. با این وجود، عدم وجود دایرکتوری مانند models عمدی است. ما دریافتیم که کلمه models مبهم است زیرا این کلمه برای بسیاری از افراد معانی مختلفی میدهد. برخی از دولوپرها، به مدل یک اپلیکیشن به عنوان کلیت تمام بیزنسلاجیک آن اشاره میکنند، در حالی که سایرین به مدلها به عنوان کلاسی که با یک دیتابیس رابطهای در تعامل است، اشاره میکنند.
به همین دلیل، ترجیح دادیم که مدلهای الوکوئنت را به صورت پیشفرض در دایرکتوری app قرار داده و به توسعهدهنده اجازه دهیم تا آنها را در هر مکان دیگری که تمایل دارد، قرار دهید.
دایرکتوری روت
دایرکتوری App
دایرکتوری app، همانطور که احتمالا انتظار دارید، شامل کد هسته اپلیکیشن شما است. بزودی این دایرکتوری را با جزئیات بیشتر بررسی خواهیم کرد؛ با این حال، تقریبا تمام کلاسها در اپلیکیشنتان در این دایرکتوری قرار خواهند گرفت.
دایرکتوری Bootstrap
دایرکتوری bootstrap حاوی فایل app.php است که فریمورک را راهاندازی میکند. همچنین این دایرکتوری، میزبان دایرکتوری است که حاوی فایلهای تولید شده بهینهسازی عملکرد توسط فریمورک از جمله فایلهای سرویسهای کش و مسیر است.
دایرکتوری Config
دایرکتوری config، همانطوری که نام آن اشاره دارد، حاوی تمام فایلهای پیکربندی اپلیکیشنتان است. ایده بسیار خوبی است که تمامی فایلهای این دایرکتوری را بخوانید و با آپشنهایی که در دسترستان است آشنا شوید.
دایرکتوری Database
دایرکتوری database حاوی تمامی مایگریشنها، مدل فکتوریها و سیدهای دیتابیس شما است. همچنین اگر تمایل داشته باشید، از این دایرکتوری برای نگهداری یک دیتابیس SQLite میتوانید استفاده کنید.
دایرکتوری Public
دایرکتوری public حاوی فایل index.php است، که نقطه ورود تمام ریکوئستهای ورودی به اپلیکیشن شما و پیکربندی اتولودینگ است. همچنین این دایرکتوری میزبان assetهای شما از قبیل عکسها، جاوااسکریپت و سیاساس است.
دایرکتوری Resources
دایرکتوری resources حاوی ویوها و همچنین assetهای خام کامپایل نشده شما مانند لِس (LESS)، سَس (SASS) و جاوااسکریپت است. این دایرکتوری همچنین از کلیه فایلهای زبان شما میزبانی میکند.
دایرکتوری Routes
دایرکتوری حاوی تمامی مسیرهای تعریف شده برای اپلیکیشن شما است. به صورت پیشفرض، چندین فایل مسیر در لاراول گنجانده شدهاند: web.php و api.php و console.php و channels.php.
فایل web.php حاوی مسیرهایی است که RouteServiceProvider، آنها را در گروه میدلور web قرار میدهد، که session state، CSRF protection و cookie encryption. اگر اپلیکیشن شما یک stateless RESTful API ارائه نمیدهد، به احتمال زیاد تمام مسیرهای شما در فایل web.php تعریف خواهند شد.
فایل api.php حاوی مسیرهایی است که RouteServiceProvider،آنها را در گروه میدلور api قرار میدهد، که rate limiting را ارائه میدهد. این مسیرها طراحی شدهاند تا stateless باشند، بنابراین ریکوئستهای ورودی به اپلکیشن از طریق این مسیرها، به گونهای طراحی شدهاند تا به وسیله توکنها اعتبارسنجی شوند و به session state دسترسی نخواهند داشت.
فایل console.php جایی است که تمام کامندهای کنسول بر پایه کلوژر را میتوانید در آن تعریف میکنید. هر کلوژر به یک نمونه (instance) از یک کامند باند (bound) میشود که روشی ساده برای تعامل با هر متد ورودی خروجی (IO) کامند را میدهد. حتی اگر این فایل در روتهای Http تعریف نشده باشد، کنسولی بر پایه
The console.php file is where you may define all of your Closure based console commands. Each Closure is bound to a command instance allowing a simple approach to interacting with each command's IO methods. Even though this file does not define HTTP routes, it defines console based entry points (routes) into your application.
اصطلاحات مرتبط در واژهنامه: سشن | پروتکل انتقال ابرمتن | رابط برنامهنویسی کاربردی