بررسی اجمالی
هنگام استفاده از هر ابزاری در “دنیای واقعی”، اگر درک کنید که آن ابزار چگونه کار می کند، اعتماد به نفس بیشتری احساس می
کنید.
توسعه برنامه هم تفاوتیبااین موضوع ندارد. هنگامی که نحوه عملکرد ابزارهای توسعه خود را درک می کنید، احساس راحتی و
اطمینان بیشتری در استفاده از آنها خواهید داشت. هدف این سند ارائه یک نمای کلی خوب و سطح بالا از نحوه “کارکرد” فریمورک
لاراول است.
با شناخت بهتر وکلیه فریمورک، همه چیز کمتر “جادویی” به نظر می رسد و شما با اطمینان بیشتری در ساخت برنامه های خود
خواهید بود.
ما علاوه بر مروری در سطح بالا از چرخه عمر درخواست، فایلهای “شروع” و رویدادهای برنامه را پوشش خواهیم داد.
اگر بلافاصله همه اصطلاحات را متوجه نشدید، دلتان را از دست ندهید! فقط سعی کنید درک اساسی از آنچه در حال رخ دادن است
داشته باشید با کاوش در بخشهای دیگر اسناد، دانش شما افزایش مییابد.
Request lifecycle (درخواست چرخه حیات)
تمام درخواست ها به برنامه شما از طریق اسکریپت public/index.php هدایت می شوند. هنگام استفاده از آپاچی،
فایل .htaccess که با لاراول ارسال می شود، تمام درخواست ها را به index.php ارسال می کند.
از اینجا، Laravel روند رسیدگی به درخواستها و بازگرداندن پاسخ به مشتری را آغاز میکند. دریافت یک ایده کلی برای فرآیند
بوت استرپ Laravel مفید خواهد بود، بنابراین اکنون آن را پوشش میدهیم!
تا کنون، مهمترین مفهومی که هنگام یادگیری در مورد فرآیند بوت استرپ لاراول باید درک کرد، ارائه دهندگان خدمات(
service provider) است.
با باز کردن فایل پیکربندی app/config/app.php و یافتن providers array، می توانید فهرستی از ارائه دهندگان خدمات را
بیابید.
این ارائه دهندگان به عنوان مکانیزم اولیه بوت استرپینگ برای لاراول عمل می کنند.
اما، قبل از بررسی ارائه دهندگان خدمات، اجازه دهید به index.php برگردیم. پس از اینکه درخواستی وارد فایل index.php شما شد، فایل bootstrap/start.php بارگذاری می شود. این فایل شیء جدید Laravel Application را ایجاد می کند که به عنوان یک container IoC نیز عمل می کند.
پس از ایجاد شی Application، چند مسیر پروژه تنظیم می شود و شناسایی محیط (environment detection) انجام می شود.سپس یک اسکریپت بوت استرپ داخلی لاراول فراخوانی می شود. این فایل در عمق سورس لاراول زندگی می کند و چند تنظیمات دیگر را بر اساس فایل های پیکربندی شما تنظیم می کند، مانند منطقه زمانی، گزارش خطا و غیره.اما، علاوه بر تنظیم این گزینه های پیکربندی نسبتاً بی اهمیت، کار بسیار مهمی را نیز انجام می دهد:همه ارائه دهندگان خدمات پیکربندی شده برای برنامه شما را ثبت می کند.
ارائه دهندگان خدمات ساده فقط یک متد دارند: ثبت نام. این متد ثبت ، زمانی فراخوانی می شود که ارائه دهنده خدمات با شی برنامه از طریق روش ثبت خود برنامه ثبت شده باشد. در این روش، ارائه دهندگان خدمات موارد را با container IoC ثبت می کنند. اساساً، هر ارائهدهنده خدمات یک یا چند بسته(closure) را به کانتینر متصل میکند، که به شما امکان میدهد به آن سرویسهای محدود شده در برنامه خود دسترسی داشته باشید. بنابراین، برای مثال، QueueServiceProvider بستههایی را ثبت میکند که کلاسهای مختلف مرتبط با Queue را حل میکنند. البته، ارائه دهندگان خدمات ممکن است برای هر کار بوت استرپینگ استفاده شوند، نه فقط برای ثبت موارد در IoCcontainer. یک ارائه دهنده خدمات ممکن است شنوندگان رویداد(event listener)، view composer، دستورات Artisan و موارد دیگر را ثبت کند.
پس از ثبت همه ارائه دهندگان خدمات، فایل های app/start شما بارگیری می شود. در نهایت، فایل app/routes.php شما بارگیری می شود. هنگامی که فایل routes.php شما بارگذاری شد، شی Request به برنامه ارسال می شود تا به یک مسیر ارسال شود.
قوانین ارسال دیدگاه در سایت