چند سوال در مورد داکیومنت 1

پرسیده شده
فعالیت 1707 روز پیش
دیده شده 1016 بار
0

سلام

استاد من خوندم تو داکیومنت که public/index.php فایل نقطه ی ورود همه در خواست ها به برنامه لاراول هست...

1. سوال اول اینه که این در خواست ها منظور همون request های هستن که کاربر ارسال می کنه؟ یا در خواست هایی که بین خود برنامه رد و بدل میشه ؟

 سوال بعدی اینه که public/index.php بعد از لود کردن autoloader یک نمونه از برنامه رو از bootstrap/app.php دریافت میکنه

2.سوال اینجاست که نمونه application داره از autoloader دریافت میشه یا از public/index.php ?

و بعد اینکه autoloader یک فایلی هست که وظیفه داره قایل ها رو include کنه و نیاز نباشه دستی ما این کار رو کنیم ...

3. آیا این انکود کردن یعنی هر بار که یک ریکویست به سمت برنامه ارسال میشه این انکلود ها انجام میشه یعنی یک  ؟ یعنی میاد بعد اینکه کاربر لاگین کرد و در خواست لاگین به سمت سرور ارسال شد و یک نمونه از application laravel دریافت میشه ؟(طبق خود نوشته لاراول در داکیومنت) باز یک سوال اینجاست 4.که آیا هر سری یک نمونه از برنامه دریافت میشه یعنی چی دقیقا ؟ یعنی نمونه ساخته میشه و دریافت میشه و یا اینکه نه نمونه ساخته شده قبلا و حالا دریافت میشه !؟ و باز یک سوال اینجاست 5. نمونه دریافت شده چه مقدار حجم داره ؟ و آیا هزینه ها (رم و حافظه ...) جواب گوی این نمونه هست ؟ فرض کنید مثلا 1000 درخواست به سمت سرور ایجاد شده و حالا قرار که هر سری از فایل bootsrap/app.php یک نمونه از کل application laravel ساخته بشه ...این حجم خیلی زیادی هست و طبیعتا سرور یا هاست نمیتونه به 1000 نمونه از برنامه بسازه و بعد بیاد درخواست ها رو هندل کنه ! اینجا چه اتفاقی می افته؟

 

استاد من صفحه ی https://laravel.com/docs/5.8/lifecycle و قسمت First Things  رو خوندم و این همه سوال (: ... به نظر شما باید چیکار کرد؟

 

ببخشید برای طولانی شدن متن .

متشکرم

فایل پیوست

MohammadMoghadasi
MohammadMoghadasi

5 شهریور 98

0
حذف شده

1 - منظور از درخواست های خود برنامه رو متوجه نشدم ... هر درخواستی کاربر ارسال میکنه به سمت سایت شما اولین صفحه ای که لود میشه index.php هستش .. این تنها برای لاراول نیست .. این قانون برای وب سرورهاست .. یعنی همه وب سرورها زمانی که درخواستی رو دریافت میکنند اولین فایلی که صدا میزنند index.php هستش ... 

۲ − autoloader مبحث دیگه ای هستش ... داخل php زمانی که شما میخواید از یک کلاس استفاده کنید باید اول اون کلاس رو include کنید ... با autoloader دیگه شما نیازی به include کردن ندارید ... خودش به صورت اتوماتیک این کار رو انجام میده ... برای اینکه کاربرد autoloader رو متوجه بشید این متن رو بخونید ... 

https://www.sitepoint.com/autoloading-and-the-psr-0-standard/

۳ − به ازای هر ریکوئست یک بار اون فایل index.php اجرا میشه و به طبع یک نسخه از app ساخته میشه ... 

۴ − هر زمان که یک درخواست به سمت برنامه ارسال میشه تمامی این موارد از اول اجرا میشه ... دوباره یک نمونه جدید ساخته میشه و به اینصورت نیست که قبلا ساخته بشه و نگه داشته بشه ... یعنی مثلا اگر شما وارد یک سایت بشید و مثلا بخش مقالات رو کلیک کنید یک بار همه این موارد اجرا میشه ... و مثلا اگر وارد یکی از مقالات بشید دوباره تمام این اتفاقات میوفته ... 

۵ − بله حافظه سرور ها کاملا پاسخگو هست ... مشکلی از این لحاظ وجود نداره ... بعد زمانی که هر کاربر درخواستی رو ارسال میکنه و کارها انجام میشه و به کاربر جواب داده میشه تمامی اون آبجکت های ساخته شده پاک میشه از روی سرور ... به طبع هرچه یوزرهای شما در یک ثانیه بیشتر بشه شما باید منابع بیشتری دریافت کنید از اون هاست ... میزان درخواست هم به ثانیه محاسبه میشه .. به عنوان مثال ۵۰۰ درخواست در ثانیه که با اصطلاح concurrency شناخته میشه ... 

مشکلی وجود نداره .. اتفاقا خوبه که براتون سوال پیش میاد ... فقط موضوعی که وجود داره اینه که با توجه به این سوالات شما به نظرم موردی که خیلی بیشتر باید روش تمرکز کنید مباحث پایه هست ... مثلا ساختار وب ... اینکه یک درخواست از سمت کلاینت میاد چه مراحلی رو طی میکنه که به ما برسه ... و مباحث مربوط به پایه PHP ... چون قطعا برای کارکردن با لاراول شما باید PHP رو در حد خوبی بلد باشید ... 

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

7 شهریور 98

حذف شده
خیلی ممنون استاد عزیز
MohammadMoghadasi

8 شهریور 98