کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش ساختار اپلیکیشن در لاراول

ساختار اپلیکیشن

  1. مقدمه
  2. Root Directory (پوشه ی اصلی)
  3. App Directory (پوشه ی کدهای اصلی برنامه)
  4. ویرایش namespace اپلیکیشن

مقدمه

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

Root Directory (پوشه ی اصلی)

پوشه ی اصلی یک نسخه ی نصبی جدید از لاراول خود حاوی مجموعه ای از پوشه ها است که در زیر به شرح هریک می پردازیم:
پوشه ی app، همان طور که انتظار می رود، دربردارنده ی کدهای اصلی اپلیکیشن شما می باشد.
پوشه ی bootstrap دربردارنده ی تعدادی فایل است که علاوه بر bootstrap (تنظیم و راه اندازی خودکار) فریم ورک و پیکربندی (قابلیت بارگذاری خودکار) autoloading، حاوی یک فولدر به نام cache می باشد. این فایل خود دربرگیرنده ی تعدادی فایل تولید شده توسط لاراول است که صرفا به منظور بهینه سازی کارایی فرایند bootstrap طراحی شده اند.
پوشه ی config، همان طور که از نام آن پیداست، تمامی فایل های پیکربندی اپلیکیشن را دربر می گیرد.
پوشه ی folder دربر گیرنده ی migration و کلاس های seed (داده ریزی) پایگاه داده می باشد. در صورت تمایل می توانید یک پایگاه داده یSQLite در این پوشه ذخیره کنید.
پوشه ی public دربردارنده ی front controller و asset های اپلیکیشن شما (از جمله فایل های تصویری، کد جاوا اسکریپت و CSS و غیره ...) می باشد.
پوشه ی resources حاوی view ها، asset های خام (نظیر LESS، SASS و CoffeeScript) و فایل های localization برنامه می باشد.
پوشه ی storage دربردارنده ی قالب های کامپایل شده ی Blade، session های ذخیره شده در فایل (file based sessions)، file cache ها و دیگر فایل های تولید شده توسط فرم ورک می باشد. این پوشه خود به پوشه های دیگر با نام های app، framework و logs تفکیک می شود. فایل های مورد استفاده ی برنامه همگی در پوشه ی app ذخیره می شوند. پوشه ی framework فایل ها و cache های ایجاد شده توسط فریم ورک را در خود نگه می دارد و پوشه ی logs نیز فایل های ثبت وقایع (log) اپلیکیشن را در خود ذخیره می کند.
پوشه ی tests حاوی تست های خودکار می باشد. یک PHPUnit نمونه خارج از فریم ورک برای برنامه نویس در این پوشه در نظر گرفته شده است.
پوشه ی vendor دربرگیرنده ی dependency های Composer می باشد.

App Directory (پوشه ی کدهای اصلی برنامه)

فایل های اصلی و هسته ی برنامه در پوشه ی app نگهداری می شوند. به صورت پیش فرض، namespace این پوشه دارای نام App می باشد و به صورت خودکار بر اساس استاندارد PSR-4 autoloading standard توسط Composer بارگذاری می شود. شما می توانید در صورت نیاز اینnamespace را با اجرای دستور آرتیزان app:name به اسم دلخواه خود تغییر دهید.
پوشه ی app به همراه یک سری پوشه ی دیگر عرضه می شود که عبارتند از: Console، Http و Providers. پوشه های Console و Http یکAPI در هسته یا به اصطلاح "core" اپلیکیشن اضافه می کنند. پروتکل HTTP و CLI هر دو مکانیزم هایی برای کار با اپلیکیشن فراهم می کنند اما منطق برنامه را شامل نمی شود. به عبارت بهتر، دو پروتکل نام برده صرفا دو روش برای دستور دادن به برنامه می باشند. پوشه ی Console تمامی دستورات آرتیزان را دربرمی گیرد، در حالی که پوشه ی Http حاوی controller ها، middleware ها و request های اپلیکیشن شما می باشد.
پوشه ی jobs، همان طور که از اسمش پیدا است، میزبان queueable job و عملیات صف بندی شده ی اپلیکیشن می باشد . Job ها می توانند توسط برنامه صف بندی شده (و بر اساس زمان بندی مشخص شده به صورت جدا اجرا شوند) یا همگی به صورت همزمان داخل چرخه ی حیات request جاری اجرا گردند.
پوشه ی Events، همان طور که انتظار می رود، کلاس های event را شامل می شود. event یا رخداد به دیگر بخش های اپلیکیشن اعلان می کند که عملیات یا فعل خاصی رخ داده است. از این طریق event ها انعطاف پذیری بالایی را به ارمغان آورده و قابلیت جداسازی بخش های مختلف برنامه از هم را فراهم می کند.
پوشه ی Listeners حاوی کلاس های handler برای مدیریت رخدادهای اپلیکیشن شما می باشد. Handler ها یک رخداد را دریافت کرده و در پاسخ به رخدادی که اجرا می شود منطق مربوطه را اجرا می کند. به عنوان مثال رخداد UserRegistered توسط listener یا گوش فراخوانSendWelcomeEmail اداره می شود.
پوشه ی Exceptions حاوی کلاس های مدیریت کننده استثنات اپلیکیشن (exception handler) می باشد و همچنین مکان مناسبی برای ذخیره ی خطاهایی است که در برنامه ی شما رخ می دهند.
توجه: بیشتر کلاس های مقیم در پوشه ی app را می توان توسط دستورات Artisan ایجاد کرد. برای مشاهده ی دستورات موجود، کافی است دستورphp artisan list make را در پنجره ی فرمان (terminal) خود اجرا کنید.

ویرایش namespace اپلیکیشن

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

                    php artisan app:name SocialNet

البته در صورت تمایل می توانید از همان فضای نام پیش فرض App استفاده کنید.

1395/02/22 4383 1714
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...