Latest Posts from Panic Dev (@panicdev) on Telegram | DiscoverTelegram.com

Panic Dev Telegram Posts

Panic Dev
Panic Dev; your Panic's solution 🔥

🍿 Telegram
🔰 t.me/PanicDev

🍿 Laravel Community
🔰 t.me/LaravelGroups

😇 Contact Me
🔰 t.me/MentionHex

Thanks for sharing us 💛
1,206 Subscribers
61 Photos
24 Videos
Last Updated 25.02.2025 04:08

The latest content shared by Panic Dev on Telegram


App Manager UI

Deployed by Laravel Cloud 🤩

https://cloudy-develop-tgs3td.laravel.cloud

لاراول cloud هم ریلیز شد 🔥
هم اکنون میتوانید ثبت نام کنید 😊

https://app.laravel.cloud/sign-up

کیت استارتر های جدید 🔥

Vue: https://github.com/laravel/vue-starter-kit
React: https://github.com/laravel/react-starter-kit
Livewire: https://github.com/laravel/livewire-starter-kit

خوب لاراول ۱۲ هم منتشر شد :) 🥳


https://github.com/laravel/framework/releases/tag/v12.0.0

شاید برای شما هم اتفاق افتاده باشد 😊


@panicdev

برای دوستانی که میگن میخوام برنامه نویسی یادبگیرم
نمیدونم از کجا شروع کنم
کدوم آموزش خوبه
بک بزنم یا فرانت
فول استک باشم خوبه ؟
کدوم زبان خوبه ؟

@panicdev

🔐 افزایش امنیت حساب با Auth::logoutOtherDevices() در لاراول


لاراول یه قابلیت امنیتی قوی داره که با Auth::logoutOtherDevices() می‌تونین تمام سشن‌های کاربر روی دستگاه‌های دیگه رو ببندین و فقط دستگاه فعلی رو فعال نگه دارین. این ویژگی برای محافظت از داده‌های حساس خیلی مفیده! 🚀

🛠 چطور پیاده‌سازی کنیم؟

مثلاً وقتی کاربر فعالیت مشکوک حس کرد، می‌تونیم همه سشن‌ها (به‌جز فعلی) رو ببندیم:

public function secureSessions(Request $request)
{
Auth::logoutOtherDevices($request->password);
return back()->with('status', 'همه‌ی سشن‌های دیگر بسته شدند');
}


نکته: این قابلیت نیاز به auth.session middleware داره:

Route::middleware(['auth', 'auth.session'])->group(function () {
// مسیرهای محافظت‌شده
});


🔑 تغییر رمز عبور + خروج از تمام دستگاه‌ها

class SecurityController extends Controller
{
public function updatePassword(Request $request)
{
$validated = $request->validate([
'current_password' => 'required',
'new_password' => 'required|min:8|confirmed'
]);

if (!Hash::check($request->current_password, Auth::user()->password)) {
return back()->withErrors([
'current_password' => 'رمز عبور فعلی اشتباه است'
]);
}

Auth::logoutOtherDevices($request->current_password);
Auth::user()->update([
'password' => Hash::make($request->new_password)
]);

return redirect('/dashboard')
->with('status', 'رمز عبور بروزرسانی شد و همه‌ی دستگاه‌های دیگر خارج شدند');
}
}


🔒 چرا این قابلیت مهمه؟

کاربر می‌تونه روی امنیت حساب خودش کنترل بیشتری داشته باشه.

دسترسی غیرمجاز به حساب به خاطر سشن‌های فراموش‌شده جلوگیری می‌شه.

یه لایه‌ی امنیتی قوی‌تر برای اپلیکیشن‌های لاراول! 🔥

📝 یک Rich Text Editor در لاراول با پکیج Rich Text Laravel

اگه توی پروژه‌هاتون نیاز به یه ویرایشگر متن پیشرفته دارین، پکیج Rich Text Laravel که از Trix Editor پشتیبانی می‌کنه، گزینه‌ی عالی‌ایه! 🎯

📌 نصب و راه‌اندازی:

composer require tonysm/rich-text-laravel

php artisan richtext:install




🛠 بروزرسانی مدل
use Tonysm\RichTextLaravel\Models\Traits\HasRichText;

class Product extends Model
{
use HasFactory, HasRichText;

protected $richTextAttributes = ['description']; // فیلدهای ویرایشگر متن
protected $fillable = ['name', 'price', 'type', 'description'];
}



📝 اعتبارسنجی در Form Request
$this->validate([
'name' => ['required', 'string', 'max:255'],
'price' => ['required', 'decimal:10,2'],
'type' => ['required'],
'description' => ['nullable', 'string'],
]);



🖋 استفاده از Blade Component
<x-trix-input id="description" name="description" 
:value="old('description', $product->description?->toTrixHtml())" autocomplete="off" />



💡 می‌تونین دکمه‌های ویرایشگر رو شخصی‌سازی کنین و حتماً ورودی‌ها رو با Symfony’s HTML Sanitizer ایمن‌سازی کنین! 🔒

💡 نگران attachment ها هم نباشید . اون هارو هم بخوبی پشتیبانی میکنه و راحت میتونید دریافتشون کنید و مدیریتشون کنید

💡 کامپوننت لایوایری هم داره که میتونید توی پروژه های لایوایری هم ازش استفاده کنید .

💡 داکیومنت خوب و تکمیلی داره که میتونید ریپازیتوری مربوطه را مشاهده کنید . لینک

اگه به یه ویرایشگر متن قوی برای لاراول نیاز دارین، این پکیج رو امتحان کنین! 🚀

🚀 جلوگیری از اجرای تصادفی کامندهای خطرناک در پروداکشن !

آیا میدانستید از لاراول ۱۱.۹ به بعد می‌تونین اجرای کامندهای حساس مثل migrate و db:wipe رو توی محیط Production بلاک کنین، فقط با اضافه کردن Trait جدید Prohibitable! 🔒

📌 چطوری؟ خیلی ساده:
use Illuminate\Console\Command;
use Illuminate\Console\Prohibitable;

class SomeDestructiveCommand extends Command
{
use Prohibitable;
}


حالا می‌تونین توی بوت اپلیکیشن، این دستورات رو مسدود کنین:
FreshCommand::prohibit();
RefreshCommand::prohibit();
ResetCommand::prohibit();
WipeCommand::prohibit();


یا خیلی راحت با DB Facade این کار رو انجام بدین:
DB::prohibitDestructiveCommands($this->app->isProduction());


متد prohibit() یه مقدار Boolean می‌گیره و می‌تونین شرطی تنظیمش کنین که فقط توی Production بلاک بشه و توی Development بدون مشکل اجرا بشه. 💡

خیلی کاربردیه، نه؟ 😎


@panicdev