827
Subscribers
+124 hours
+37 days
+2230 days
Posts Archive
827
Repost from آموزش لاراول | LaravelHub
چندتا سایت برای نت ملی که به دردتون میخوره
✅میرور های داخلی برای پکیج ها:
mirror.shatel.ir : مخازن اوبونتو، دبیان، کالی میزبانی شده روی دیتاسنتر شاتل
repo-portal.ito.gov.ir : مخزن ملی منابع متن باز که توسط فناوری اطلاعات ایران نگهداری میشه، حاوی مخازن Gradle، Pypi، CentOS، Fedora، Rocky، Debian، npm، Composer، Maven و...
runflare.com/mirrors : مخزن داخلی برای Composer/Packagist، PyPI، npm، Node.js و... (سایتش برام خیلی دیر بالا میاد اما میرور ها کار میکنن پس صبر کنید ممکنه خیلی طول بکشه)
repo.iut.ac.ir : میرور جامع دانشگاه صنعتی اصفحان برای بسیاری از توزیع های لینوکس مثل Debian، Ubuntu، Mint، Arch Linux، Manjaro، Raspbian، Alpine، Rocky Linux، Fedora، OpenSUSE، OpenBSD و مخازن CTAN
maven.myket.ir : میرور داخلی مایکت برای mavenCentral - googleMaven - Jitpack - Android sdk - android maven central - android jitpack - android googleMaven
arvancloud.ir/dev/linux-repository : میرور داخلی و پرسرعت از ریپازیتوریهای محبوبترین توزیعهای گنو/لینوکس بر روی سرورهای ابر آروان | Debian, Ubuntu, CentOS, Alpine, Arch Linux, OpenSUSE, Manjaro و...
mirror.iranserver.com : میرور های داخلی روی میزبان ایران سرور Debian, Ubuntu, CentOS
arvancloud.ir/fa/dev/docker : میرور داخلی برای داکر ارائه شده توسط ارون کلاد
docker.mobinhost.com : داکر ریجستری مبین هاست
mirror.mobinhost.com : میرور های داخلی مبین هاست برای FreeBSD, Almalinux, Alpine, Archlinux, Debian, Fedora EPEL, Fedora, Manjaro, MariaDB, MongoDB, Raspbian, Ubuntu, Zabbix
lib.arvancloud.ir : یه cdn برای کتابخونه ها و فریم ورک های مختلف از ارون کلاد
jamko.ir : دارای مخزن برای Maven، Gradle، Android SDK، APT، RPM، NuGet، Yarn، Composer، pip
mirrors.kubarcloud.com : پروکسی داخلی کوبار (میزبان داخلی نداره و فقط اگر اینترنت دیتاسنتر ها ملی نشده باشه کار میکنه، میتونید آزمایش کنید چون ممکنه زمانی که تست میکنید شرایط متفاوت باشه، همچنین برای رفع تحریم هاهم مناسبه)
hub.hamdocker.ir : داکر ریجستری
focker.ir : داکر ریجستری
docker.kernel.ir : داکر ریجستری
کانال ما را دنبال کنید:
@LaravelHUB
827
Repost from Linuxor ?
معمولا شرکت هایی موفق ان که یه ابزار برای خودشون ساختن و اونو به بقیه هم عرضه کردن، مثلا یکتانت (بزرگ ترین سیستم تبلیغاتی ایران) به گفته خودشون ابزار تبلیغاتی برای خودشون بوده اول بعد تبدیل به ابزارش کردن، یا پروژه های خیلی بزرگی مثل گیتهاب و اسلک اینا همگی ابزار برای تیم خودشون بوده بعد دیدن عه چه باحاله به مردم هم بدیم استفاده کنن.
علتش هم خیلی سادس، چون نیازی نیست نیاز بازار رو بسنجی خودت جزئی از بازاری و مطمئنی چیزی که ساختی بدرد بخوره.
@Linuxor
827
Repost from Syntax | سینتکس
تو پروژه ها اولش شبیه به اینه که داری یه سنگ گرد سنگین رو به سختی از یه تپه بالا می بری. انرژی زیادی میخواد تا راه بیوفته، ولی وقتی راه افتاد، ادامه دادنش خیلی راحته
اما اگه یه مدت رهاش کنی دوباره راه انداختنش به همون اندازه اول، یا حتی بیشتر، سخت میشه
حفظ momentum یعنی حتی اگه وقتت کمه، یا خسته ای، یا مغزت پره، یه حرکت کوچیک بزنی، یه باگ ریز، یه refactor ساده، یا حتی فقط باز کردن پروژه
چون وقتی فاصله می گیری، پروژه یه دفعه سنگین تر از چیزی که هست به نظر میرسه و اون وقت به جای یه خط کد، با یه کوه ناتموم طرفی
چرا momentum؟
1. انگیزه رو زنده نگه میداره
وقتی هر روز یه کار کوچیک انجام بدی، حس پیشرفت میگیری. ولی وقتی چند روز فاصله بیفته، مغز حس میکنه پروژه سنگینتر شده
2. یادگیری و درگیری ذهنی حفظ میشه
وقتی مدام با کدها درگیری، context توی ذهنت میمونه. ولی بعد از چند روز، باز کردن پروژه مثل روبهرو شدن با یه چیز ناآشنا میشه
3. بهت کمک میکنه با کمالگرایی کنار بیای
وقتی توی flow باشی، بیشتر عمل میکنی تا تحلیل. ولی فاصله گرفتن باعث میشه بیش از حد فکر کنی. از کجا شروع کنم؟ نکنه کدم خوب نباشه؟
@Syntax_fa
827
در نسخههای جدید لاراول، مدیریت تاریخ و زمان بسیار سادهتر شده.
متودهای plus() و minus()
// جمع کردن زمان now()->plus(minutes: 5); now()->plus(hours: 8); // کم کردن زمان now()->minus(days: 2); now()->minus(weeks: 1);مزیتش؟ خواناتر و استانداردتر از متدهای قدیمی مانند addHours() یا subDays() است. توابع Interval
use function Illuminate\Support\minutes;
cache::put('metrics', $metrics, minutes(10));
📌 مزایا؟
●سریع و مختصر
●خواناتر نسبت به ساخت مستقیم CarbonInterval::minutes(10)
●قابل استفاده در هر جایی که DateInterval یا CarbonInterval قابل قبول باشه.
و Carbon حالا پشتیبانی کاملتری از جمع و تفریق واحدهای زمانی مثل دقیقه، ساعت، روز، هفته، ماه و سال دارد.
#Laravel #LaravelTip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/MrPunyapal/status/1994095099178045903?t=b8N9eTPiAKq3r-YlVph8Rg&s=35827
Repost from Code Lab
🚀 چرا API کُند میشه؟
امروز میخوایم در مورد یه مشکل مشترک صحبت کنیم: کندی API.
چرا بعضی وقتها API ما مثل لاکپشت رفتار میکنه؟ 🐢
۱. پایگاه داده (Database) – مقصر اصلیکوئریهای سنگین و بدون index قفل شدن جدولها (Table Locking) ارتباطات زیاد با دیتابیس (N+1 Problem)
۲. معماری بد APIاندپوینت (Endpoint) هایی که کارهای زیادی انجام میدن! عدم استفاده از Pagination برای دادههای زیاد پردازشهای سنگین در خود API (مثلاً پردازش تصویر)
۳. مشکل در کش (Caching)عدم استفاده از کش برای دادههای تکراری تنظیم نادرست زمان انقضای کش کش کردن دادههای بیفایده!
۴. منابع سرور (Server Resources)منابع RAM کم CPU overload شده محدودیت پهنای باند (Bandwidth)
۵. شبکه (Network)فاصلهٔ جغرافیایی بین کاربر و سرور استفاده از هاستینگ ارزانقیمت و ضعیف مشکل در CDN
۶. کدنویسی ضعیفحلقههای بیپایان (Infinite Loops) استفاده از الگوریتمهای ناکارآمد (مثلاً O(n²)) مدیریت نادرست حافظه (Memory Leak)
💡 راههای حل مشکل:✅ برای دیتابیس: از indexها استفاده کن، کوئریهاتون رو بهینه کن. ✅ برای معماری: از Microservices و Pagination کمک بگیر. ✅ کش: Redis یا Memcached رو فراموش نکن! ✅ مقیاسپذیری: سرور رو ارتقا بده یا از Load Balancer استفاده کن. ✅ کد: پروفت رو با ابزارهایی مثل Py-Spy یا Blackfire آنالیز کن. ✨ جمعبندی: کندی API همیشه قابل حلست، به شرطی که درست تشخیص بدی مشکل از کجاست! یادت باشه: یه API سریع، هم کاربر رو خوشحال میکنه، هم موتورهای جستجو رو! 😉 ⏳ پ.ن: تو اولین تجربهات، چه چیزی باعث کندی API تو شده بود؟ زیر همین پست برامون بنویس! 👇 #baha #API CODELAB | GpCodeLab
827
نمایش دادهها به شکل جدول با console.table()
وقتی میخوای آرایهها یا آبجکتهای متعدد رو دیباگ کنی، console.log() همیشه خوانا نیست.
اما با console.table() میتونی دادهها رو مرتب، جدولی و بسیار خوانا ببینی. (در عکس قابل مشاهدست)
📌 مثال:
const users = [
{ name: "Ali", age: 25 },
{ name: "Sara", age: 30 }
];
console.table(users);
خروجی:
یک جدول تمیز شامل ستون های name و age.
کاربردهاش :
دیباگ سریعتر
مشاهده نتایج API
بررسی state در React/Vue
اگه تا حالا استفاده نکردی، حتما امتحانش کن :)
#JavaScript #جاوا_اسکریپت
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/denicmarko/status/1974822770476192190?t=msuLktjZp2a5rKegj1JdiA&s=35827
در آپدیت جدید Laravel 12.39 یک ویژگی کاربردی به دستور route:list اضافه شده:
فلگ جدید --middleware
ازین به بعد میتونین روتها رو بر اساس یک middleware مشخص فیلتر کنید.
یعنی برای دیباگ، بررسی امنیت یا پیدا کردن روتهای اشتباه، دیگه نیازی به گشتن بین صدها روت نیست.
📌 مثال:
php artisan route:list --middleware=auth
نمایش فقط اون روتهایی که middleware آنها auth است.
php artisan route:list --middleware=api
نمایش روتهای مربوطه.
چرا مهمه؟
پیدا کردن سریع روتهای مرتبط با یک middleware
دیباگ راحتتر
بررسی امنیت روت ها
قابلیتی ساده اما بسیار مفید برای پروژههای بزرگ لاراولی
#Laravel #LaravelTip #لاراول
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/MrPunyapal/status/1991187285551788343?t=PtzZDme8H4Mu2P-GeP21DQ&s=35827
یکی از قابلیتهای کمتر استفادهشده ی مرورگرها، Web Speech API است که به شما امکان رو میده متن رو با صدای طبیعی برای کاربر پخش کنید.
با متود زیر میتونید خیلی ساده به اپلیکیشن وبتون صدا اضافه کنید:
const msg = new SpeechSynthesisUtterance("سلام! این متن در مرورگر خوانده میشود.");
speechSynthesis.speak(msg);
📌 چطوری کار میکنه؟
این SpeechSynthesisUtterance یک شیء (Object) هستش که متن، سرعت، زبان و ... نگه میداره.
متود speechSynthesis.speak() همین شی را به موتور گفتار مرورگر میده و متن رو برای کاربر میخواند.
📌 موارد استفادش:
ساخت نوتیفیکیشن های صوتی در وب
دستیار های صوتی ساده
افزایش Accessibility
خواندن متن یا آموزش زبان برای کاربر
#Javascript #جاوااسکریپت #جاوا_اسکریپت
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/denicmarko/status/1989665993871036438?t=nr9Tyq5fblSYnQGZiR58mQ&s=19827
وقتی از get() استفاده میکنیم، کل رکوردهای جدول یکباره از دیتابیس خوانده میشن و داخل حافظه لود میشن.
این برای جدول های کوچیک مشکلی نداره؛ اما اگه با هزاران یا میلیونها رکورد سروکار داشته باشیم مصرف حافظه شدیدا بالا میره و ممکنه اسکریپت از کار بیفته.
لاراول قابلیت خوبی در اختیارمون گذاشته:
✅ lazy() — استریمکردن دادهها بهصورت مرحلهای
با lazy() رکوردهامون بصورت streaming لود میشن.
یعنی فقط بخش کوچکی وارد حافظه میشه، پردازش میشه و بعد آزاد میگرده. این روش فوقالعاده بهینه و کممصرف هست.
📌 مثال:
User::lazy()->each(function ($user) {
// پردازش هر کاربر
});
مزیت هاش؟
جلوگیری از مصرف سنگین RAM
مناسب برای پردازش جداول بزرگ
امنتر برای queue job ها و اسکریپتهای طولانی
اگه با دیتاستهای بزرگ سروکار دارین lazy() یکی از ترفندهاییه که بهتره بشناسید.
#Laravel #LaravelTip #لاراول
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/laravelbackpack/status/1987135536189055477?t=qISIPBP7OR7Yxe41XToi-Q&s=35827
گاهی یک رشته داریم که عناصرش با "," یا ";" جدا شدن. با استفاده از split() و یک Regex ساده میتونیم هر دو رو همزمان جدا کنیم.
مثال:
let text = "apple,banana;orange,grape;melon";
let parts = text.split(/[,;]/);
console.log(parts);
// ["apple", "banana", "orange", "grape", "melon"]
الگوی بالا میگه هرجا ", " یا ";" دیدی جداسازی انجام بده برامون
#Javascript #جاوااسکریپت #جاوا_اسکریپت
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/Aurimas_Gr/status/1988972296262869238?t=U5EvBFU_GPcgmhSERH8ylg&s=35827
در Laravel نسخه 12.16 به بعد یک rule جدید به نام in_array_keys معرفی شده :
$request->validate([
'data' => 'required|array|in_array_keys:name,email',
]);
یعنی آرایهی data باید حداقل یکی از کلیدهای name یا email رو داشته باشه، بدون نیاز به کد اضافی.
مزایای استفاده ازین rule :
کد تمیز و کوتاه
حذف بررسیهای دستی کلیدها
هماهنگ با دیگر قوانین اعتبارسنجی
📌 این rule فقط وجود کلیدها رو بررسی میکنه. برای بررسی نوع یا مقدار دیتا، از قوانین دیگه ای مثل string یا email استفاده کنین.
ی مثال دیگه:
$request->validate([
'user' => 'required|array|in_array_keys:name,email,password',
]);`
درین مثال، اگه هیچکدام از کلیدهای name، email یا password وجود نداشته باشن، Laravel به صورت خودکار خطا برمیگردونه و نیازی به نوشتن کد دستی نیست.
اما اگه فقط یکی از کلیدها موجود باشه، اعتبارسنجی عبور میکنه.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1988233512273543234?t=2ABEYuKulqMioiYyYh6Umg&s=19
827
اگه با API Resources در Laravel کار میکنین، احتمالا همیشه با این حالت مواجه بودید:
return PostResource::collection(Post::all());
return new PostResource($post);
تکراری و کسل کنندس کمی؟
راه حل جدید در Laravel 12.29
حالا میتونین مستقیما در مدل مشخص کنید که از چه Resource و Resource Collection ای استفاده بشه:
use Illuminate\Database\Eloquent\Model;
use App\Http\Resources\PostResource;
use App\Http\Resources\PostCollection;
use Illuminate\Database\Eloquent\Attributes\UseResource;
use Illuminate\Database\Eloquent\Attributes\UseResourceCollection;
#[UseResource(PostResource::class)]
#[UseResourceCollection(PostCollection::class)]
class Post extends Model {}
استفاده ی ازش هم اسونه
بعده این کار، برای نمایش یک رکورد یا مجموعه کافیست:
return Post::first()->toResource(); // یک رکورد
return Post::all()->toResource(); // مجموعه
متود toResource() بطور خودکار Resource یا Resource Collection مرتبط با مدل را برمیگردونه.
مزایاش؟
•کد تمیزتر و کوتاهتر
•مدل خودش مسئول انتخاب Resource مناسب میشه
•مناسب برای پروژههای بزرگ با چندین API Resource
📌 این ویژگی فقط از Laravel 12.29 به بعد فعال است. پس حتما نسخه لاراول پروژهتان رو بهروز کنین.
#Laravel #laravel_tip #لاراول
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1986489784408182821?t=Ju0iw4KZdb1e0wg-OzajSQ&s=19827
خیلی وقتا برای نمایش عددها، قیمتها یا درصدها کمی دردسر داریم ( ویرگول، اعشار، واحد پول، زبان کاربر و...)
اما جاوااسکریپت خودش یه ابزار آماده داره که همهی اینارو خودش انجام میده 👇🏾
چی هستش؟
این Intl.NumberFormat یه قابلیت Native و قدرتمنده
که اعداد رو بر اساس زبان و منطقهی کاربر فرمت میکنه.
نه نیاز به کتابخونه داریم نه regex بنویسیم
یه مثال:
const num = 1234567.89;
new Intl.NumberFormat('en-US').format(num);
// 1,234,567.89 ✅
new Intl.NumberFormat('fa-IR').format(num);
// ۱٬۲۳۴٬۵۶۷٫۸۹ 🇮🇷
👆🏾 همون عدد، ولی متناسب با زبان کاربر نمایش داده میشه.
برای پول و درصد :
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
}).format(4999.99);
// $4,999.99 💵
new Intl.NumberFormat('fa-IR', {
style: 'percent',
maximumFractionDigits: 1
}).format(0.853);
// ٪۸۵٫۳ 🔢
مزایاش؟
• داخلی و سریع (بدون نصب کتابخونه)
• پشتیبانی از تمام زبانها و ارزها
• کنترل اعشار، جداکنندهها، و سبک نمایش
• ظاهر حرفهایتر برای کاربر 👌
خلاصه:
وقتی Intl.NumberFormat هست، دیگه نیازی به کدنویسی اضافی برای فرمت اعداد نیست.
#JS #JavaScript #جاوااسکرپیت
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/KaraBharat/status/1984635931832328388?t=nyibER_ZCoXfs8nLIFoy7g&s=19827
📌 این سایت هم یک ابزار کاربردیه برای کسانی که میخوان از در دسترس بودن سایتها و APIهایشون مطمئن باشند.
در سایت میتونید لینکهای مهمتون رو ثبت کنید تا بصورت خودکار بررسی بشن.
اگه لینک یا سرور شما خطا بدهد، بلافاصله از طریق ایمیل به شما اطلاع داده میشه.
⚙️ امکانات فعلیش:
• مانیتورینگ لینکها با بازههای زمانی قابل تنظیم
• هشدار از طریق ایمیل
• گزارش خطاها در داشبورد
مناسب برای:
توسعهدهندگان، مدیران سرور و صاحبان کسبوکار
(زبان فارسی هم بزودی اضافه میشه)
👇🏾
https://alixdev.ir/
827
در نسخهی جدید PHP 8.5 تابع filter_var() یه قابلیت کاربردی تازه داره:
FILTER_THROW_ON_FAILURE
تا قبل ازین اگه اعتبارسنجی دیتا (مثلا ایمیل نامعتبر) fail میشد،
تابع فقط مقدار false برمیگردوند و باید دستی بررسیش میکردی.
اما حالا بااین گزینه، بجای برگردوندنه false، یک Exception پرتاب (throw) میشه 👇🏾
try {
$email = filter_var('not-an-email', FILTER_VALIDATE_EMAIL, FILTER_FLAG_THROW_ON_FAILURE);
} catch (ValueError $e) {
echo "ایمیل نامعتبر است!";
}
مزایاش؟
کد تمیزتر ، خطایابی سریعتر ، هماهنگی بهتر با Exception Handling در پروژههای مدرن PHP
#php #backend
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1983537236403794361?t=IIrUtS60L_j-Rl6cHxtwlg&s=19827
تا حالا پیش اومده بخوای یه قابلیت یا یه گزارش فقط برای درصد کمی از کاربران فعال باشه؟
لاراول یه ابزار باحال برای این کار داره: Lottery
مثال:
تست ویژگی جدید فقط برای ۵٪ کاربران
فرض کن میخوای یه قابلیت جدید (مثلا طراحی تازهی داشبورد) رو فقط برای ۵٪ از کاربرها فعال کنی تا عملکردش رو بسنجی 👇🏾
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Lottery;
Lottery::odds(1, 20) // یعنی 5% احتمال
->winner(function () {
session(['new_dashboard' => true]);
})
->loser(function () {
session(['new_dashboard' => false]);
})
->choose();
حالا فقط ۵٪ کاربران این داشبورد جدید رو میبینن 🔥
بدون نیاز به feature flag سیستم یا تنظیمات پیچیده.
📌 کاربردهای دیگه ی Lottery در لاراول
مانیتورینگ سبک:
گرفتن لاگ کامل SQL در درصدی از ریکوئستها
تست A/B برای UX
اجرای وظایف سنگین فقط در بخشی از ریکوئست ها (مثلا آنالیز رفتار کاربر)
این Lottery از نسخهی 9.19 به بعد اضافه شده و توی اپهای پر ترافیک کمک میکنه بدون کاهش سرعت، رفتار سیستم رو هوشمندانه بررسی کنی.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1978788530139635982?t=Hc2oNzGolFfMitfwrxC2zA&s=35
827
یه روش برای اینکه کارهای تکراریه مثل ساخت یه سری کلاسهای خاص (مثلا DTO) رو خودکار کنید
اولش ببینیم چرا custom artisan command مفیده؟
صرفهجویی در زمان
کاهش خطا: از نوشتن دستی کد جلوگیری میکنین
وقت بیشتری برای کدنویسی بخشهای مهم پروژه دارید.
📌 چطوری custom artisan command بسازیم؟
1. ایجاد دستور جدید:
با دستور زیر، یک دستور جدید ایجاد کنین:
php artisan make:command CreateDto
2. نوشتن منطق دستور:
در کلاس جدید،دستور مورد نظرتونو بنویسین (مثل ساخت یک DTO جدید).
یه مثال:
<?php
protected $signature = 'make:dto {name}';
protected $description = 'Create a new DTO class';
public function handle() {
$name = $this->argument('name');
file_put_contents(app_path("Dtos/{$name}.php"), "<?php\n\nclass {$name} {}\n");
$this->info("DTO {$name} created successfully!");
}
3. اجرای دستور:
حالا با این دستور میتونین بسادگی کلاسهای DTO جدید بسازید:
php artisan make:dto MyDto
خلاصش که:
با استفاده از custom artisan command، میتونین کارهای تکراریتون رو خودکار کنین و توسعه پروژتون رو هم سرعت بدید.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1982797695568707742?t=EQ-hdRBX3rRgGuPH2EyA9Q&s=19827
در لاراول اگه بخوایم بصورت همزمان چندین Job رو در queue با اولویتهای مختلف ارسال کنیم، از کدوم ویژگی استفاده میشه؟
827
ویژگیه جدید defer در لاراول v12.34.0
در لاراول نسخه 12.34.0، متود جدیدی به نام defer در کلاس HTTP Client Batch معرفی شده که میتونه تاثیر زیادی در بهبود سرعته اپلیکیشن شما داشته باشه.
📌 چیکار میکنه؟
با استفاده از defer میتونین درخواستهای HTTP به api های خارجی یا سرویس های انلاین رو پس از ارسال پاسخ به کاربر ارسال کنین. یعنی این که زمان انتظار برای این درخواستها روی تجربه کاربری تاثیر نمیذاره و سرعت پاسخدهی به کاربر بیشتر میشه.
📌 چرا باید استفاده کنیم؟
افزایش سرعت پاسخدهی به کاربر:
با استفاده از defer، درخواست های HTTP به سرویسهای خارجی بعده ارسال پاسخ به کاربر آغاز میشن.
این یعنی زمان انتظار برای کاربر به حداقل میرسه و عملیاته زمانبر در بکگراند انجام میشه، بدون اینکه سرعت بارگذاری صفحات تحت تاثیر قرار بگیره.
عملیاتهای زمانبر بدون تاثیر بر تجربه کاربری:
مثل ارسال ایمیلها یا بروزرسانی موجودی انبار.
بهینهسازی منابع سرور:
منابع سرور به شکل بهتری مدیریت میشن.
نمونه کدش:
use Illuminate\Support\Facades\Http;
Http::batch(function ($batch) {
$batch->defer(Http::post('https://example.com/api/notify', [...]));
$batch->defer(Http::post('https://example.com/api/update-stock', [...]));
});
خلاصه که اگه دنبال بهبود سرعت و عملکرد اپلیکیشنید ، این ویژگی میتونه خیلی مفید باشه!
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/magadum_aniket/status/1981755582836019433?t=8V5fsh9-RDxwLVoMlX4dVA&s=35