Forwarded from Golden Code (@lix)
یکی از قابلیت های جالبه لاراول اینه که میتونی خیلی ساده برای APIها محدودیت درخواست (Rate Limit) بذاری.
ولی جذابتر اینه که محدودیت میتونه بر اساس شرایط مختلف اعمال بشه،
مثلا:
🔹 اگه کاربر عضو تیم باشه → محدودیت بر اساس team_id
🔹 اگه کاربر پلن اشتراکی داشته باشه → محدودیت بر اساس نوع پلن
🔹 و اگه هیچکدوم نبودش → محدودیت پیشفرض بر اساس IP
این یعنی میتونی برای پلن رایگان محدودیت سختتر بذاری، برای پلن حرفهای محدودیت بیشتر، و برای تیمها محدودیت مشترک.
📌 نمونه کد در RouteServiceProvider:
🔥 با همین چند خط کد، میتونی مدیریت مصرف API رو هوشمند و حرفهای کنی، طوریکه هم کاربرا تجربه بهتری دارن، هم از تلاش های مخربه برخی کاربرا جلوگیری میشه.
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/wendell_adriel/status/1967552508647071760?s=35
ولی جذابتر اینه که محدودیت میتونه بر اساس شرایط مختلف اعمال بشه،
مثلا:
🔹 اگه کاربر عضو تیم باشه → محدودیت بر اساس team_id
🔹 اگه کاربر پلن اشتراکی داشته باشه → محدودیت بر اساس نوع پلن
🔹 و اگه هیچکدوم نبودش → محدودیت پیشفرض بر اساس IP
این یعنی میتونی برای پلن رایگان محدودیت سختتر بذاری، برای پلن حرفهای محدودیت بیشتر، و برای تیمها محدودیت مشترک.
📌 نمونه کد در RouteServiceProvider:
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
RateLimiter::for('api', function (Request $request) {
if ($request->user()?->team_id) {
// محدودیت مشترک برای کل تیم
return Limit::perMinute(100)->by($request->user()->team_id);
}
if ($request->user()?->plan) {
// محدودیت بر اساس پلن کاربر
return Limit::perMinute(200)->by($request->user()->id);
}
// محدودیت پیشفرض برای آیپی
return Limit::perMinute(60)->by($request->ip());
});
🔥 با همین چند خط کد، میتونی مدیریت مصرف API رو هوشمند و حرفهای کنی، طوریکه هم کاربرا تجربه بهتری دارن، هم از تلاش های مخربه برخی کاربرا جلوگیری میشه.
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/wendell_adriel/status/1967552508647071760?s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
Laravel Tip 🚀
Rate limiting can be tricky sometimes, right? Not with Laravel.
Check how simple it is to apply a rate limit per team and plan, with a fallback for IP! 🔥
Rate limiting can be tricky sometimes, right? Not with Laravel.
Check how simple it is to apply a rate limit per team and plan, with a fallback for IP! 🔥
❤2👍1👌1
قبلا در این کانال گفتم که می خوام سایت رو به لاراول منتقل کنیم.
اما ذهنم بدجوری درگیر شده که آیا ارزش داره که سایت با توجه به این مقاله های وبلاگ و یکی آموزشی سئو قوی داره و چند تا شو توی صفحه اول گوگل هست از وردپرس به لاراول منتقل کرد؟
اینکه که نگرانم با انتقال به لاراول سئو سایت و لایک ها رو خراب کنه چون هنوز روش انتقال درست محتوا به لاراول رو نمی دونم. چون به شدت سئو حساس هست و یک اشتباه می تونه همه چیز رو خراب کنه.
روی وردپرس بمونم قالب رو دوباره طراحی کنم یا به لاراول منتقل کنم؟ کدوم یک؟
@TheRaymondDev
اما ذهنم بدجوری درگیر شده که آیا ارزش داره که سایت با توجه به این مقاله های وبلاگ و یکی آموزشی سئو قوی داره و چند تا شو توی صفحه اول گوگل هست از وردپرس به لاراول منتقل کرد؟
اینکه که نگرانم با انتقال به لاراول سئو سایت و لایک ها رو خراب کنه چون هنوز روش انتقال درست محتوا به لاراول رو نمی دونم. چون به شدت سئو حساس هست و یک اشتباه می تونه همه چیز رو خراب کنه.
روی وردپرس بمونم قالب رو دوباره طراحی کنم یا به لاراول منتقل کنم؟ کدوم یک؟
@TheRaymondDev
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 انیمیشنها در macOS 26 واقعاً یک سطح بالاتر هستند و ویندوز هیچوقت نمیتواند به این میزان از روان بودن برسد.
#توییت
@TheRaymondDev
#توییت
@TheRaymondDev
Forwarded from Ali Lotfi
🗳️ تست شخصیت سیاسی
با چند سؤال کوتاه، گرایش سیاسیت رو کشف کن!
این مینیاپ با تحلیل جوابهای تو نشون میده که بیشتر شبیه کدوم شخصیت یا حزب سیاسی هستی.
یه تست سرگرمکننده برای آدمهای کنجکاو و اهل بحثهای سیاسی!
آدرسربات
پیشنمایش
آدرسگیتهاب
با چند سؤال کوتاه، گرایش سیاسیت رو کشف کن!
این مینیاپ با تحلیل جوابهای تو نشون میده که بیشتر شبیه کدوم شخصیت یا حزب سیاسی هستی.
یه تست سرگرمکننده برای آدمهای کنجکاو و اهل بحثهای سیاسی!
آدرسربات
پیشنمایش
آدرسگیتهاب
GitHub
GitHub - AliLotfi09/Strategic-Mind: استراتژیک مایند یک تست شخصیت سیاسی و استراتژیک است که به شما کمک میکند سبک رهبری، باورهای…
استراتژیک مایند یک تست شخصیت سیاسی و استراتژیک است که به شما کمک میکند سبک رهبری، باورهای سیاسی و دیدگاه استراتژیک خود را بشناسید. این تست بر اساس مدلهای روانشناسی سیاسی و رفتارشناسی طراحی شده و ...
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 تسک پایر چند زبانه اضافه شد.
زبان فارسی و انگلیسی
https://github.com/Rayiumir/TaskPire
#mern
@TheRaymondDev
زبان فارسی و انگلیسی
https://github.com/Rayiumir/TaskPire
#mern
@TheRaymondDev
🔥2
🔶 برنامه اوبونتو برای جایگزین کردن GNU Core Utils با نسخههای باز نویسی شده در راست (Rust) دقیقاً همانطور که پیشبینی می شد، به خوبی پیش نمی رود.
برخی از نسخه های نوشته شده با راست تا ۱۷ برابر کندتر از C / C++ عمل میکنند. همچنین بعضی از نسخههای راست حتی در کار با فایل های بزرگ به طور کامل از کار میافتند.
#لینوکس
@TheRaymondDev
برخی از نسخه های نوشته شده با راست تا ۱۷ برابر کندتر از C / C++ عمل میکنند. همچنین بعضی از نسخههای راست حتی در کار با فایل های بزرگ به طور کامل از کار میافتند.
#لینوکس
@TheRaymondDev
😁9
Forwarded from مهدی حمید | توسعه دهنده وب سایت
🎉 پلاگین Postication – ارسال نوتیفیکیشن وردپرس به تلگرام
با Postication، هر بار که یک پست جدید در سایت وردپرسی شما منتشر میشود،
یک پیام خودکار به کانال تلگرام شما ارسال میشود!
ویژگیها:
🧬 نصب و استفاده:
🌟 اگر پلاگین Postication مفید بود، لطفاً جهت حمایت استار فراموش نشه .
🔗 Click Here To Download Source Code.
📣 @MehdiHamid1223
با Postication، هر بار که یک پست جدید در سایت وردپرسی شما منتشر میشود،
یک پیام خودکار به کانال تلگرام شما ارسال میشود!
ویژگیها:
- ارسال نوتیفیکیشن هنگام ایجاد پست جدید
-ارسال نوتیفیکیشن هنگام بهروزرسانی پست
- حذف پیامهای تلگرام هنگام حذف پست از سایت
- نمایش عنوان، توضیح کوتاه، لینک ادامه مطلب و هشتگها
- پشتیبانی از تصویر شاخص پست
- امکان فعال/غیرفعال کردن ارسال نوتیفیکیشنها
🧬 نصب و استفاده:
1. پلاگین را نصب و فعال کنید.
2. در تنظیمات، توکن ربات تلگرام و آیدی کانال خود را وارد کنید.
3. از این به بعد نوتیفیکیشنهای خودکار برای پستها در کانال تلگرام شما ارسال میشوند.
🌟 اگر پلاگین Postication مفید بود، لطفاً جهت حمایت استار فراموش نشه .
🔗 Click Here To Download Source Code.
📣 @MehdiHamid1223
Forwarded from mosTafa Arshadi
آدم ها وقتی یه بار موفق میشن، بعدش فقط میخوان موفقیتشونو از دست ندن.
ولی مشکل اینجاست که همین فکر باعث میشه آخرش ببازن.
برای اینکه همیشه برنده بمونی، باید همیشه دنبال بردن باشی، نه فقط نباختن.
گاهی وقتا هم لازمه چیزی رو که دفعه قبل به دست اوردی رو قربانی کنی تا دفعهی بعد دوباره بتونی موفق بشی.
@hamidreza01
ولی مشکل اینجاست که همین فکر باعث میشه آخرش ببازن.
برای اینکه همیشه برنده بمونی، باید همیشه دنبال بردن باشی، نه فقط نباختن.
گاهی وقتا هم لازمه چیزی رو که دفعه قبل به دست اوردی رو قربانی کنی تا دفعهی بعد دوباره بتونی موفق بشی.
@hamidreza01
👍8
🔶 شرکت Name قیمت ثبت دامنه .com به ۱۸ دلار افزایش داده است و البته با تخفیف ۱۲.۹۹ دلار عرضه می کند.
@TheRaymondDev
@TheRaymondDev
💔13
Forwarded from Golden Code (@lix)
یکی از دغدغههای مهم در طراحی API اینه که اطلاعات اضافی نفرستیم.
چون:
حجم ریسپانس ها زیاد میشه و حجم منابع سرور افزایش پیدا میکنه و...
لاراول یه راهکار خیلی تمیز برای این موضوع داره: استفاده از API Resourceها.
🔹 مشکل رایج
فرض کنید میخوایم اطلاعات یک کاربر رو همراه با پستهاش برگردونیم.
معمولا شاید اینطوری عمل کنیم:
اینجا یه مشکل هست: حتی اگر posts رو لود نکرده باشیم، باز هم کلید posts توی JSON میاد (و معمولا query اضافه اجرا میشه).
لاراول متودی به اسم whenLoaded داره. این متود بررسی میکنه که آیا relation مورد نظر واقعاً لود شده یا نه.
✅ نتیجه:
اگر توی query نوشتیم:
اون موقع posts داخل JSON میاد.
اگر with('posts') رو ننوشتیم، اصلا posts توی خروجی دیده نمیشه.
📌 مزایا
شماره ۱ : API سبکتر → فقط دیتاهایی که لازم داری ارسال میشن.
شماره ۲: کد تمیزتر → دیگه خبری از if/else های شلوغ داخل Resource نیست.
شماره۳: کنترل کامل → هر relation فقط وقتی لود شده باشه به خروجی اضافه میشه.
خلاصه که:
وقتی داری API میسازی، همیشه به این فکر کن که چه دیتا ای لازمه سمت کاربر بیاد.
با استفاده از whenLoaded در لاراول، میتونی خروجیهات رو بهینه، تمیز و حرفهای نگه داری.
@GoldenCodeir
#Laravel #لاراول
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1967917256446267886?t=nJdmRFIvFlZGiL09jL8LuQ&s=35
چون:
حجم ریسپانس ها زیاد میشه و حجم منابع سرور افزایش پیدا میکنه و...
لاراول یه راهکار خیلی تمیز برای این موضوع داره: استفاده از API Resourceها.
🔹 مشکل رایج
فرض کنید میخوایم اطلاعات یک کاربر رو همراه با پستهاش برگردونیم.
معمولا شاید اینطوری عمل کنیم:
return [
'id' => $this->id,
'name' => $this->name,
'posts' => PostResource::collection($this->posts),
];
اینجا یه مشکل هست: حتی اگر posts رو لود نکرده باشیم، باز هم کلید posts توی JSON میاد (و معمولا query اضافه اجرا میشه).
لاراول متودی به اسم whenLoaded داره. این متود بررسی میکنه که آیا relation مورد نظر واقعاً لود شده یا نه.
return [
'id' => $this->id,
'name' => $this->name,
'posts' => PostResource::collection($this->whenLoaded('posts')),
];
✅ نتیجه:
اگر توی query نوشتیم:
User::with('posts')->get();اون موقع posts داخل JSON میاد.
اگر with('posts') رو ننوشتیم، اصلا posts توی خروجی دیده نمیشه.
📌 مزایا
شماره ۱ : API سبکتر → فقط دیتاهایی که لازم داری ارسال میشن.
شماره ۲: کد تمیزتر → دیگه خبری از if/else های شلوغ داخل Resource نیست.
شماره۳: کنترل کامل → هر relation فقط وقتی لود شده باشه به خروجی اضافه میشه.
خلاصه که:
وقتی داری API میسازی، همیشه به این فکر کن که چه دیتا ای لازمه سمت کاربر بیاد.
با استفاده از whenLoaded در لاراول، میتونی خروجیهات رو بهینه، تمیز و حرفهای نگه داری.
@GoldenCodeir
#Laravel #لاراول
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1967917256446267886?t=nJdmRFIvFlZGiL09jL8LuQ&s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
Laravel Tip 🚀
Ship lighter APIs with Resources that only include loaded relations! ☁️
Laravel allows us to easily control the payload without if/else spaghetti! 🫶
Check the example to learn how! 🔥
Ship lighter APIs with Resources that only include loaded relations! ☁️
Laravel allows us to easily control the payload without if/else spaghetti! 🫶
Check the example to learn how! 🔥
👍6❤1
🔶 نسکافه دونه ای به ۲۰۰۰۰ تومان رسیده...
آنقدر گرون شده که مصرف آن به صفر رسوندم.
به جای آن روزی یک ماگ قهوه می خورم.
@TheRaymondDev
آنقدر گرون شده که مصرف آن به صفر رسوندم.
به جای آن روزی یک ماگ قهوه می خورم.
@TheRaymondDev
😁5❤1
🔶 با نرم افزار gnome-font-viewer لینوکس می توانید راحت فونت ها با یک کلیک نصب کنید.
دانلود نرم افزار :
https://pkgs.org/download/gnome-font-viewer
#لینوکس
@TheRaymondDev
دانلود نرم افزار :
https://pkgs.org/download/gnome-font-viewer
#لینوکس
@TheRaymondDev
😁5❤1🤣1
🔶 جدیدا آی پی هایی v2ray با پورت ۴ الی ۵ رقمی زیاد شده که کلیک می کنید ۱۵ ثانیه بعد از کار می افته و به نظر میاد پورت فیک هست.
آی پی با پورت ۴۴۳ و ۸۰ خیلی کم پیدا میشه...
مثلا پورت:
@TheRaymondDev
آی پی با پورت ۴۴۳ و ۸۰ خیلی کم پیدا میشه...
مثلا پورت:
45323
46964
59185
@TheRaymondDev
🤣4
🔶 کسانی که میگویند اگر کارِ فکر کردن را به هوش مصنوعی بسپارید دارید از آن اشتباه استفاده میکنید، خودشان در اشتباه اند. این موضوع شبیه این است که وقتی میخواهید وزن کم کنید، دائم روی میز تان شکلات بگذارید؛ بالاخره یک روز وسوسه میشوید و میخورید. با هوش مصنوعی هم همین است: اگر بگذارید خودش برایتان متن را کامل کند یا به جای شما بنویسد، دیر یا زود عادت میکنید و دیگر کمتر انتقادی فکر می کنید. دلیلش هم این است که انسان ذاتاً موجودی تنبل است. پس بهتر است به جای جنگیدن با این ذات، آن را بپذیرید.
#توییت
@TheRaymondDev
#توییت
@TheRaymondDev
❤🔥9👍3👎2
🔶 پروژه TaskPire یک ابزار مدیریت وظایف است که با استفاده از React و Vite توسعه داده شده است. این ابزار با رابط کاربری ساده و روان، به شما کمک میکند وظایف خود را به شکلی منظم مدیریت کنید. هدف اصلی تسک پایر این است که مدیریت کارهای روزانه، پیگیری وضعیت وظایف و افزایش بهرهوری فردی یا تیمی را آسانتر کند. تسک پایر بر پایه سلف هاست است.
گیت هاب :
https://github.com/Rayiumir/TaskPire
#task
@TheRaymondDev
گیت هاب :
https://github.com/Rayiumir/TaskPire
#task
@TheRaymondDev
🔥2🤣2👌1