تکنولوژی نوین اینترنتی
در لاراول، میتوانید از Middleware برای کش کردن دادهها استفاده کنید تا عملکرد API خود را بهبود بخشید و زمان پاسخگویی را کاهش دهید. کش کردن میتواند به ویژه برای دادههایی که تغییرات مکرر ندارند یا نیاز به درخواستهای پرهزینه دارند مفید باشد. با استفاده از یک middleware برای کش کردن دادهها، میتوانید از کش به عنوان یک لایه موقت ذخیرهسازی استفاده کنید که باعث کاهش بار بر روی سرور و افزایش سرعت میشود.
در ادامه نحوه ایجاد یک Middleware برای کش کردن دادهها را توضیح خواهیم داد.
ساخت Middleware جدید: ابتدا باید یک middleware جدید برای کش کردن ایجاد کنید. برای این کار از دستور زیر استفاده کنید:
ویرایش Middleware:
پس از ایجاد، فایل middleware جدید شما در مسیر app/Http/Middleware/CacheData.php
قرار خواهد گرفت. این فایل را باز کنید و کدهای زیر را به آن اضافه کنید تا دادهها را کش کند.
در این کد:
ابتدا کلید کش از URL درخواست ساخته میشود.
اگر کش موجود باشد، پاسخ کششده بازگردانده میشود.
اگر کش موجود نباشد، درخواست به مسیر بعدی پردازش میشود و سپس پاسخ در کش ذخیره میشود.
برای اینکه بتوانید از این middleware استفاده کنید، باید آن را در فایل app/Http/Kernel.php
ثبت کنید.
ثبت Middleware:
در فایل Kernel.php
، بخش routeMiddleware
را پیدا کنید و CacheData
را به آن اضافه کنید:
حالا که middleware شما آماده است، میتوانید از آن در روتها یا کنترلرها استفاده کنید تا کش را برای درخواستهای خاص فعال کنید.
استفاده از Middleware در روتها:
برای استفاده از این middleware در روتها، به راحتی میتوانید آن را به روت خود اضافه کنید:
این بدین معناست که هنگام درخواست به روت /data
، لاراول ابتدا بررسی میکند که آیا دادهها در کش موجود است یا خیر. اگر دادهها در کش وجود داشته باشند، پاسخ کششده بازگشت داده میشود، در غیر این صورت درخواست ادامه پیدا کرده و دادهها در کش ذخیره میشوند.
همچنین میتوانید کش کردن دادهها را مستقیماً در کنترلر خود نیز پیادهسازی کنید. این روش زمانی مفید است که بخواهید کش کردن را فقط برای برخی دادهها اعمال کنید.
کش کردن دادهها در کنترلر:
در کنترلر DataController
، میتوانید دادهها را کش کنید:
در اینجا از متد Cache::remember
استفاده کردهایم که بررسی میکند آیا دادهها در کش موجود هستند یا خیر. اگر دادهها موجود نباشند، از Callback برای بارگذاری دادهها استفاده میشود و سپس آنها در کش ذخیره میشوند.
گاهی اوقات ممکن است نیاز داشته باشید که کشها را به صورت دستی پاک کنید، مثلاً زمانی که دادهها تغییر میکنند یا بهروزرسانی میشوند. برای این کار میتوانید از دستور زیر استفاده کنید:
پاکسازی کش برای یک کلید خاص:
پاکسازی تمامی کشها:
استفاده از middleware برای کش کردن دادهها در لاراول یک روش مؤثر برای بهبود عملکرد و کاهش بار سرور است. با پیادهسازی این روش، میتوانید زمان پاسخدهی APIهای خود را به طور قابل توجهی کاهش دهید و تجربه کاربری بهتری را فراهم کنید.
این روش میتواند برای دادههایی که به ندرت تغییر میکنند، مانند لیست محصولات، اطلاعات کاربر، یا نتایج جستجو بسیار مفید باشد.