در این درس به ساختار پروژه های مبتنی بر فریمورک لاراول خواهیم پرداخت. منظور از ساختار لاراول ، پوشه ها ، زیر پوشه ها و تمامی فایل های درون پوشه بندی های لاراول است.
بعد از اینکه یک نسخه ی تازه از لاراول را نصب کردید با یک سری پوشه و فایل و ... روبرو میشوید که در زیر به توضیح آنها اشاره میکنیم تا ساختار لاراول را درک کنید.
در تصویر زیر شما اسکرین شاتی از ریشه ی اصلی یک پروژه ی لاراول به نام laravel-project را میبینید.
در تصویر زیر فولدر ها وفایل های زیادی وجود دارد ، تجزیه و تحلیل پوشه ها و پرونده ها به همراه جنبه های عملکردی آنها در زیر آورده شده است.
در ادامه به بحث درباره ی هر یک از پوشه ها و فایل های مهم که در ساختار پروژه های لاراولی وجود دارد خواهیم پرداخت.
این پوشه ، پوشه ی اصلی برنامه ی شماست و شامل کدمنبع اصلی مربوط به پروژه ی شما با لاراول است.
این فولدر شامل مواردی مثل events, exceptions و middleware هست.
-- console
پوشه ی console شامل دستورات Artisan است که ابزاری مهم برای فریمورک لاراول است.درون پوشه ی console یک پوشه ی دیگری به نام Commands وجود دارد که محل دستورات artisan است.
فایل Kernal.php دستورات درون فایل Inspire.php را صدا میزند.
پس اگر به دنبال دستورات اختصاصی یا فرمان اختصاصی در لاراول هستید باید در این پوشه انجام دهید.
-- Events
این پوشه شامل event های مربوط به لاراول است.
event ها در لاراول برای پیگیری فعالیت ها ، خطاهای رخ داده یا اعتبار سنجی های ضروری مورد استفاده قرار میگیرد و انعطاف پذیری بیشتری به توسعه دهنده ی وب میدهد.
لاراول تمام event ها را در زیر یک دایرکتوری ( پوشه ) نگهداری میکند.
بصورت پیشفرض درون پوشه ی Events یک فایل به نام event.php وجود دارد که رخدادهای بیسیک یا پایه ای در آن تعریف میشود.
پیشنهاد ویژه : اگر به دنبال آموزش لاراول خوب میگردید دوره ی آموزش کامل فریمورک لاراول مهندس نیک زاد را از دست ندهید. |
-- Exceptions
این فولدر شامل تمامی متود ها برای کنترل کردن استثناها یا exception در لاراول است.درون این دایرکتوری یک فایل به نام handle.php وجود دارد که تمام این کارها را انجام میدهد و exception ها را مدیریت و کنترل میکند.
-- Http
این دایرکتوری یکی از مهمترین بخش های فریمورک لاراول است. در این دایرکتوری چند زیردایرکتوری به نام های controllers ، middleware و application requests موجود است.
از آنجایی که لاراول از الگوی MVC پیروی میکند این دایرکتوری شامل model ، controller و view های تعریف شده برای هربخش میباشد.
زیردایرکتوری دیگری به نام Middleware وجود دارد که مکانیسم middleware لاراول درآنجا تعریف میشود که فیلترهای مختلف و مکانیسم های لازم برای مدیریت درخواست های بین request و respons را کنترل میکند.
زیردایرکتوری Requests شامل تمامی request های مربوط به اپلیکیشن لاراولی است.
-- Jobs
دایرکتوری jobs در فریمورک لاراول ، فعالیت هایی که صف بندی شده اند را نگهداری میکند. کلاس اصلی بین دیگر Job ها به اشتراک گذاشته میشود و یک مکان مرکزی برای اتصال همه ی آنهاست.
-- Listeners
listener ها وابسته به رویداد هستند که شامل متود هایی هستند که event ها و exception ها را استفاده و مدیریت میکنند.
بعنوان مثال عمل لاگین کردن یک رخداد به نام LoginListener دارد.
-- Policies
Policies کلاس های PHP هستند که شامل منطق احراز و مجوزها میباشد. فریمورک لاراول شامل یک ابزاری برای ساخت تمامی احراز هویت ها توسط کلاس های Policy در درون این زیردایرکتوری فراهم میکند.
-- Providers
این دایرکتوری شامل service provider ها میباشد که برای رجیستر کردن event ها برای سرورهای اصلی میباشد و همچنین اپلیکیشن لاراول را کانفیگ میکند.
این فولدر شامل تمام اسکریپت های Bootstrap اپلیکیشن لاراولی است. این فولدر دارای یک زیردایرکتوری به نام cache میباشد که شامل تمام فایل های مربوط به کش اپلیکیشن لاراولی است.
همچنین شما میتوانید یک فایل به نام app.php را پیدا کنید که راه اندازی اولیه اپلیکیشن لاراول است.
فولدر config شامل تنظیمات و پارامترهای مرتبط مختلف است تا اپلیکیشن لاراولی عملکرد صحیح خود را داشته باشد.فایل های زیادی در این بخش وجود دارد که در تصویر زیر نشان داده شده است.
نام فایل ها نشان دهنده ی عملیات آن فایل است.
همانطور که از نام این فولدر پیداست این فولدر شامل پارامتر های مختلف برای کار با پایگاه داده است.این بخش شامل سه زیردایرکتوری است که در زیر آمده است.
-- Seeds -> این بخش برای ساخت اطلاعات تستی یا آزمایشی در پایگاه داده استفاده میشود.
-- Migrations -> این بخش شامل تمام مایگریشن هاست که عمل کوئری روی پایگاه داده انجام میدهند.
-- Factories -> این بخش برای تولید داده ها با حجم زیاد استفاده میشود.
این فولدر همانطور که از نام آن پیداست بخش عمومی و برای پیاده سازی اولیه استفاده میشود. این بخش شامل فایل ها و فولدرهای زیر میشود.
-- .htaccess این فایل برای تنظیمات سرور در لاراول مورد استفاده قرار میگیرد.
-- javascript و css این ها بعنوان assets تعریف شده اند.
-- index.php این اولین فایلی است که از اپلیکییشن اجرا میشود و برای اجرا اولیه اپلیکیشن لاراولی مورد نیاز است.
فولدر Resources دارای فایل هایی هست که اپلیکیشن لاراولی شما را تقویت میکند.زیردایرکتوری های این بخش در زیر به همراه جزيیات آنها آورده شده است.
-- assets این دایرکتوری شامل فایل های LESS و SCSS است که برای استایل دهی به سایت لاراولی مورد نیاز است.
-- lang این بخش برای تنظیمات محلی و زبان است که برای منطقه ی مورد استفاده ی لاراول قابل تنظیم است.
-- views ویو ها فایل های HTML یا تمپلیت هستند که قالب اصلی سایت را برای مشاهده توسط بازدید کننده فراهم میکنند . این بخش جزو یکی از بخش های MVC است.
در تصویر زیر این بخش را مشاهده میکنید و زیرپوشه های آن لیست شده است.
این فولدر دارای لاگ ها و فایل های ضروری اپلیکیشن Laravel است.
زیردایرکتوری ها و عملکرد آنها در زیر نوشته شده است.
-- app این پوشه حاوی پرونده هایی است که پشت سر هم خوانده می شوند
-- framework این بخش شامل session ها ، کش و view هایی هست که بصورت مکرر فراخوانی میشوند.
تمام واحد های تست در این بخش قرار داده میشوند.سیستم نامگذاری camel_case است یعنی تمام کلمات به هم چسبیده هستند و حرف اول همه ی کلمات با حرف بزرگ نوشته میشود ولی حرف اول کلمه ی اول با حرف کوچک نوشته میشود به این صورت thisIsPhpFrameworkForYou ...
فریمورک لاراول کاملا مبتنی بر وابستگی های composer است برای مثال هنگام نصب لاراول یا تنظیم یا نصب یک کتابخانه ی جانبی شما از composer بهره میگیرید. فولدر Vendor شامل تمام وابستگی های ( dependencis ) فریمورک لاراول است.
علاوه بر پرونده های ذکر شده در بالا ، لاراول شامل فایلهای دیگری نیز می باشد که در عملکردهای مختلف مانند پیکربندی GitHub ، بسته ها و کتابخانه های جانبی نقش اصلی را ایفا می کنند.
در تصویر زیر فایل ها و فولدرهای آنرا مشاهده میکنید.
اتمام این درس
محصولات برگزیده مناسب شما
دوره ی آموزش کامل فریمورک لاراول Laravel دوره پروژه محور ساخت فروشگاه بامیلو با لاراول کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel دوره ی آموزش ویوجی اس ( Vuejs 3) پروژه محور به همراه Nuxt js