درخواست چرخه حیات
معرفی
هنگام استفاده از هر ابزاری در "دنیای واقعی"، اگر درک کنید که آن ابزار چگونه کار می کند، اعتماد به نفس بیشتری پیدا می کنید. توسعه برنامه نیز تفاوتی ندارد. وقتی نحوه عملکرد ابزارهای توسعه خود را درک می کنید، احساس راحتی و اطمینان بیشتری در استفاده از آنها خواهید داشت.
هدف این سند ارائه یک نمای کلی خوب و سطح بالا از نحوه "کارکرد" چارچوب لاراول است. با شناخت بهتر چارچوب کلی، همه چیز کمتر «جادویی» به نظر میرسد و در ساخت برنامههای خود مطمئنتر خواهید بود.
اگر بلافاصله همه اصطلاحات را متوجه نشدید، دلتان را از دست ندهید! فقط سعی کنید درک اولیه ای از آنچه در حال وقوع است به دست آورید، و دانش شما با کاوش در بخش های دیگر اسناد افزایش می یابد.
مروری بر چرخه حیات
اولین چیزها
نقطه ورود همه درخواست ها به برنامه لاراول فایل است
public/index.php
.
تمام درخواست ها توسط پیکربندی وب سرور شما (Apache / Nginx) به این فایل هدایت می شوند.
فایل
index.php
حاوی کد زیادی نیست.
بلکه به سادگی نقطه شروعی برای بارگذاری بقیه چارچوب است.
این
index.php
فایل تعریف بارگذاری خودکار تولید شده توسط Composer را بارگیری می کند و سپس نمونه ای از برنامه لاراول را از
bootstrap/app.php
اسکریپت بازیابی می کند.
اولین اقدامی که خود لاراول انجام می دهد، ایجاد یک نمونه از
کانتینر برنامه/سرویس
است .
هسته های HTTP / کنسول
در مرحله بعد، بسته به نوع درخواستی که وارد برنامه می شود، درخواست دریافتی به هسته HTTP یا هسته کنسول ارسال می شود.
این دو هسته بهعنوان مکان مرکزی عمل میکنند که تمام درخواستها از آن عبور میکنند.
در حال حاضر، اجازه دهید فقط بر روی هسته HTTP تمرکز کنیم که در واقع شده است
app/Http/Kernel.php
.
هسته HTTP
Illuminate\Foundation\Http\Kernel
کلاس را گسترش می دهد، که آرایه ای از
bootstrappers
آن را تعریف می کند که قبل از اجرای درخواست اجرا می شود.
این بوت استرپرها مدیریت خطا را پیکربندی میکنند، گزارشگیری را پیکربندی میکنند، محیط برنامه را شناسایی میکنند و کارهای دیگری را که باید قبل از رسیدگی واقعی به درخواست انجام شوند، انجام میدهند.
هسته HTTP همچنین لیستی از میان افزار HTTP را تعریف می کند که همه درخواست ها قبل از رسیدگی توسط برنامه باید از آن عبور کنند. این میان افزارها خواندن و نوشتن جلسه HTTP را کنترل می کنند، تعیین می کنند که آیا برنامه در حالت تعمیر و نگهداری است یا خیر، تأیید توکن CSRF و موارد دیگر.
امضای متد برای
handle
متد هسته HTTP بسیار ساده است: a را دریافت کنید
Request
و a را برگردانید
Response
.
به کرنل به عنوان یک جعبه سیاه بزرگ فکر کنید که کل برنامه شما را نشان می دهد.
به آن درخواست های HTTP بدهید و پاسخ های HTTP را برمی گرداند.
ارائه دهندگان خدمات
یکی از مهمترین اقدامات بوت استرپ کرنل بارگذاری ارائه دهندگان خدمات برای برنامه شما است.
همه ارائه دهندگان خدمات برای برنامه در آرایه
config/app.php
فایل پیکربندی پیکربندی شده اند
providers
.
ابتدا
register
متد در همه ارائه دهندگان فراخوانی می شود، سپس پس از ثبت نام همه ارائه دهندگان، متد
boot
فراخوانی می شود.
درخواست اعزام
هنگامی که برنامه بوت استرپ شد و همه ارائه دهندگان خدمات ثبت شدند،
Request
برای ارسال به روتر تحویل داده می شود.
روتر درخواست را به یک مسیر یا کنترلر ارسال می کند و همچنین هر میان افزار خاص مسیر را اجرا می کند.
تمرکز بر ارائه دهندگان خدمات
ارائه دهندگان خدمات واقعاً کلید راه اندازی یک برنامه لاراول هستند. نمونه برنامه ایجاد می شود، ارائه دهندگان خدمات ثبت می شوند و درخواست به برنامه بوت استرپ داده می شود. واقعاً به همین سادگی است!
داشتن درک دقیق از نحوه ساخت و راه اندازی برنامه لاراول از طریق ارائه دهندگان خدمات بسیار ارزشمند است.
البته، ارائه دهندگان خدمات پیش فرض برنامه شما در
app/Providers
دایرکتوری ذخیره می شوند.
به طور پیش فرض،
AppServiceProvider
نسبتا خالی است.
این ارائه دهنده مکانی عالی برای افزودن اتصالات بوت استرپینگ و سرویس کانتینر برنامه شما است.
البته، برای برنامههای کاربردی بزرگ، ممکن است بخواهید چندین ارائهدهنده خدمات ایجاد کنید، که هر کدام از نوع دانهبندیتر بوت استرپینگ هستند.