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

آشنایی

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

Root دایرکتوری

زمان نصب یک لاراول جدید , دایرکتوری روت شامل فولدرهای متعددی است :

همانطور که انتظار می رود , دایرکتوری root شامل کدهای هسته ی برنامه ی شما می باشد . ما به زودی این فولدر و جزییات آن را شرح می دهیم .

فولدر bootstrap شامل فایل های اندکی به منظور راه اندازی فریم ورک و پیکربندی های خودکار می باشد .

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

فولدر database شامل تمام migration و seeds های برنامه ی شما می باشد .

فولدر public شامل تمام فایل های بخش Front پروژه و assets ها می باشد (عکس ها ,استایل ها ,فایل های جاوااسکریپت و غیره)

فولدر resources شامل تمام view ها , فایل های مربوط به زبان و همچنین فایل هایی مانند LESS, SASS, CoffeeScript می باشد .

فولدر storage شامل تمام فایل های کامپایل شده قالب Blade , سشن ها ,کش ها و دیگر فایل های تولید شده به وسلیه فریم ورک می باشد .

فولدر test شامل فایل های تست خودکار می باشد.

فولدر vendor شامل تمام پکیج های مورد نیاز می باشد .

App دایرکتوری

قسمت اصلی برنامه ی شما در فولدر app می باشد و این فولدر تحت فضای نامی App است و به صورت خودکار به وسیله ی کامپوزر و استاندارد PSR-4 autoloading standard بارگزاری می شود .شما می توانید با فرمان آرتیسان app:name این فضای نامی را به دلخواه خود عوض نمایید.

فولدر app شامل فولدرهای مختلفی مانند Console, Http و Providers می باشد . فولدرهای Console, Http را به منظور ارایه دهنده ی API ای داخل برنامه ی خود درنظر بگیرید و همچنین پروتوکل HTTP و CLI هر دو مکانیزمی به منظور تعامل با برنامه شما می باشند.به عبارت دیگر آنها ۲ راه ساده ی ارسال پیام در برنامه ی شما هستند. فولدر Console شامل تمام فرمان های Artisan هست و فولدر Http شامل تمام کنترلرها , فیلترها و requests ها می باشد . فولدر Commands در واقع محلی برای تمام commandsهای برنامه شما می باشد . فولدر Events همانطور که از نام اش انتظار می رود محل نگهداری کلاس های event می باشد .برای استفاده از event ها لازم نیست از این کلاس ها استفاده کنید , با این حال اگر می خواهید از آنها استفاده کنید , این فولدر محل پیشفرض event هایی است که با فرمان Artisan ایجاد می شوند .

فولدر Handlers شامل تمام کلاس های handler برای commands و events ها می باشد.Handlers ها یک command یا event را دریافت می کنند و زمانی که آنها فراخوانی می شوند , منطق آنها را اجرا کرده و در پاسخ به آنها ارسال می کند . فولدر Services شامل سرویس هایی است که برنامه ی شما در طول اجرا به آن نیاز دارد .برای مثال سرویس Registrar مسئول اعتبارسنجی و ایجاد یک کاربر جدید در برنامه ی شما است و یا سرویس هایی که با API های بیرونی ارتباط برقرار می کنند و یا حتی سرویس هایی که داده ها را در برنامه ی شما جمع آوری می کنند . فولدر Exceptions شامل تمام استثناها و exception های برنامه ی شما است و همچنین محل مناسبی برای رسیدگی به exception های رخ داده شده در برنامه می باشد .

توجه داشته باشید: بسیاری از کلاس های داخل فولدرapp را می توان با فرمان های artisan ایجاد نمود.به منظور مرور این فرمان ها در ترمینال خود , php artisan list make را اجرا نمایید.

فضای نامی برنامه ی شما

همانطور که در بالا صحبت کردیم namespace یا فضای نام پیش فرض برنامه, App می باشد هرچند که شما به راحتی با توجه به نام برنامه خودتان می توانید آن را تغییر دهید و این کار از طریق فرمان آرتیسان app:name صورت می گیرد . به عنوان مثال اگر نام برنامه ی شما SocialNet باشد , شما فرمان زیر را می توانید اجرا نمایید.

php artisan app:name SocialNet