درخواست چرخه حیات
تمام درخواست ها به برنامه شما از طریق اسکریپت 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 به برنامه ارسال می شود تا به یک مسیر ارسال شود.
بنابراین، بیایید خلاصه کنیم:
- درخواست وارد فایل public/index.php می شود.
- فایل bootstrap/start.php اپلیکیشن را ایجاد می کند و محیط را شناسایی می کند
- فایل Framework/start.php داخلی تنظیمات را پیکربندی می کند و ارائه دهندگان خدمات را بارگیری می کند.
- فایل های app/start برنامه بارگیری می شوند.
- فایل app/routes.php برنامه بارگیری می شود
- شی request ارسال شده به Application که شی Response را برمی گرداند
- شی پاسخ به client ارسال شد
اکنون که ایده خوبی از نحوه رسیدگی به درخواست به یک برنامه لاراول دارید، اجازه دهید نگاهی دقیق تر به فایل های “شروع” بیندازیم!
قوانین ارسال دیدگاه در سایت