شبکه ایمن

چرخه حیات یک درخواست در لاراول – آموزش لاراول

چرخه حیات یک درخواست در لاراول

زمانی که در دنیای واقعی از یک وسیله برای انجام کاری استفاده می کنید، اگر چگونگی کار کرد آن وسیله را بدانید با اعتماد به نفس و راحتی بیشتری از آن استفاده می کنید چون می‌دانید که چه قابلیت ها و خطراتی دارد. توسعه نرم‌افزار هم مشابه این سناریو است. اگر شما ابزاری را که برای توسعه برنامه خود استفاده می کنید خوب بشناسید، می توانید به راحتی و با اعتماد به نفسی خوبی از آن ها استفاده کنید.در این بخش چگونگی کار کرد فریم ورک لاراول را بررسی خواهیم کرد. هر چه بیشتر در مورد فریم روک بدانید، درک مطالب برای شما آسان تر می شود.

چرخه حیات درخواست

اولین قدم

نقطه ورودی برای کل درخواست هایی که به یک برنامه لاراول ارسال می شود، فایل public/index.php است. همه درخواست ها بر اساس تنظیمات و پیکربندی وب سرور (Apache / Nginx) به این فایل منتقل می شوند. این فایل کد زیادی ندارد و فقط یک شروع کننده برای کل فریم ورک است. فایل public/index.php تعاریف مربوط به autoloader که توسط Composer تولید شده اند را بارگذاری کرده و یک نمونه از bootstrap/app.php را دریافت می کند.

دومین قدم

درخواست ورودی بعد از گذشتن از فایل public/index.php بر اساس نوع درخواست به کرنل HTTP یا Console ارسال می شود. همه درخواست های ورودی به برنامه از داخل این دو کرنل عبور می کنند. کرنل HTTP در داخل فایل app/Http/Kernel.php و کرنل Console در داخل فایل app/Console/Kernel.php قرار دارد. کرنل HTTP از کلاس IlluminateFoundationHttpKernel ارث بری می کند. این کلاس یک آرایه به نام bootstrappers دارد که موارد موجود در آن قبل از اجرا شدن درخواست، اجرا می شوند. به طور کلی این کلاس پیکربندی های مربوط به خود فریم ورک را انجام می دهد و نیاز نیست کاری انجام دهید.

کرنل HTTP لیستی از Middleware ها را تعریف می کند که همه درخواست ها قبل از هندل شدن توسط برنامه از داخل آن ها عبور می کند. Middleware های مربوط به احراز هویت، بررسی توکن CSRF و غیره در این بخش تعریف شده اند.

ارائه دهندگان سرویس (Service Providers)

یکی از عملیات مهم مربوط به آماده‌سازی کرنل، بارگذاری ارائه دهندگان سرویس برای برنامه است. تمام سرویس های مورد استفاده در برنامه در داخل فایل config/app.php و آرایه providers تنظیم و پیکربندی می شوند. لاراول در هنگام اجرا هر کدام از سرویس های مشخص شده در آرایه providers را نمونه سازی می کند. بعد از نمونه سازی متد register که در همه سرویس ها وجود دارد فراخوانی می شود و زمانی که همه سرویس ها ثبت شدند، متد boot هر سرویس فراخوانی می شود.

ارائه دهندگان سرویس مسئول آماده‌سازی بخش های مختلف فریم ورک مانند دیتابیس، صف، اعتبار سنجی، مسیریابی و غیره هستند. اساسا ویژگی های اصلی مربوط به لاراول توسط ارائه دهندگان سرویس پیکربندی و آماده می شود.

مسیریابی (Routing)

یکی از مهم ترین ارائه دهندگان سرویس در لاراول، AppProvidersRouteServiceProvider است که فایل های مربوط به مسیرهای برنامه را که در دایرکتوری routes قرار دارند، بارگذاری می کند. بعد از آنکه بخش های مختلف برنامه آماده شد (به اصطلاح بوت استرپ شد)، درخواست ارسال شده به برنامه برای مدیریت شدن به روتر فرستاده می شود. سپس روتر درخواست را به یک مسیر یا کنترلر ارسال می کند و همچنین middleware های لازم را اجرا می کند.

میان افزارها (Middleware) مکانیزمی برای فیلتر کردن درخواست های HTTP ارسالی به برنامه هستند. برای مثال لاراول یک میان افزار برای احراز هویت دارد که بررسی میکند که آیا کاربر احراز هویت شده است یا خیر. اگر کاربر احراز هویت نشده باشد، آن را به صفحه لاگین هدایت می کند و در غیر این صورت اجازه می دهد تا درخواست عبور کند.

ارسال پاسخ درخواست

زمانی که مراحل فوق انجام و درخواست دریافتی پردازش شد، متد handle مربوط به کرنل HTTP پاسخ آن را به فایل index.php باز میگرداند و در فایل index.php متد send مربوط به پاسخ فراخوانی می شود. این متد محتوای پاسخ را به مرورگر کاربر ارسال می کند.

دیدگاهتان را بنویسید