🤩 ورسل یه ابزاری زده به اسم grep که شما میتونید خیلی ساده باهاش توی چند میلیون ریپازیتوری پابلیک هرچیزی که دوس دارید رو سرچ بزنید و پیداش کنید.
🎩 یکی از کاربرد های دارکش هم اینه که شما میتونید بگردید دنبال کلید هایی که اشتباها پوش شده توی ریپازیتوری ها :))
مثلا لایسنس لاراول نوا توی env از طریق یه کلید به اسم:
ست میشه - همین رو اگه سرچ کنید تمام ریپازیتوری هایی که این کلید اشتباها توشون پوش شده رو براتون میاره...
🔗 https://grep.app
استفاده به کام 😎🔥
🎩 یکی از کاربرد های دارکش هم اینه که شما میتونید بگردید دنبال کلید هایی که اشتباها پوش شده توی ریپازیتوری ها :))
مثلا لایسنس لاراول نوا توی env از طریق یه کلید به اسم:
NOVA_LICENSE_KEY=ست میشه - همین رو اگه سرچ کنید تمام ریپازیتوری هایی که این کلید اشتباها توشون پوش شده رو براتون میاره...
استفاده به کام 😎🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
grep.app
Code Search | Grep by Vercel
Effortlessly search for code, files, and paths across a million GitHub repositories.
🤣16🔥9👍3🌚1
شاید دنبال پرامپت باشید . به marketplace هایی مثل این بر بخورید
که تقریبا همه پرامپت ها فروشی
promptbase.com
ولی خوب از این سایت هم که دوستان گیت هابی زحمت کشیدن هم میتونید استفاده کنید برای مدل های مختلف
https://prompts.chat
@panicdev
که تقریبا همه پرامپت ها فروشی
promptbase.com
ولی خوب از این سایت هم که دوستان گیت هابی زحمت کشیدن هم میتونید استفاده کنید برای مدل های مختلف
https://prompts.chat
@panicdev
👍8🤣2
#نکته : حتماً متوجه شدین که لاراول داره بیشتر و بیشتر از Attributes استفاده میکنه و حسابی از این قابلیت که توی PHP 8.0 معرفی شد، بهره میبره! 🤌
این دو Attribute کاربردی رو میدونستین؟ 🤔
💉 اتریبیوت
🗄 اتریبیوت
همهی اینا برای داشتن کد تمیزتر و خواناتر هست!😊 😊 🍫
@panicdev
این دو Attribute کاربردی رو میدونستین؟ 🤔
💉 اتریبیوت
[CurrentUser]# بهتون اجازه میده کاربر احراز هویت شده رو هر جایی تزریق کنین.🗄 اتریبیوت
[RouteParameter('user')]# دسترسی به پارامترهای مسیر رو خیلی راحتتر میکنه.همهی اینا برای داشتن کد تمیزتر و خواناتر هست!
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8❤🔥5
🚀 جلوگیری از اجرای تصادفی کامندهای خطرناک در پروداکشن !
آیا میدانستید از لاراول ۱۱.۹ به بعد میتونین اجرای کامندهای حساس مثل migrate و db:wipe رو توی محیط Production بلاک کنین، فقط با اضافه کردن Trait جدید Prohibitable! 🔒
📌 چطوری؟ خیلی ساده:
حالا میتونین توی بوت اپلیکیشن، این دستورات رو مسدود کنین:
یا خیلی راحت با DB Facade این کار رو انجام بدین:
✅ متد
خیلی کاربردیه، نه؟😎
@panicdev
آیا میدانستید از لاراول ۱۱.۹ به بعد میتونین اجرای کامندهای حساس مثل 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7❤🔥3
📝 یک Rich Text Editor در لاراول با پکیج Rich Text Laravel
اگه توی پروژههاتون نیاز به یه ویرایشگر متن پیشرفته دارین، پکیج Rich Text Laravel که از Trix Editor پشتیبانی میکنه، گزینهی عالیایه! 🎯
📌 نصب و راهاندازی:
🛠 بروزرسانی مدل
📝 اعتبارسنجی در Form Request
🖋 استفاده از Blade Component
💡 میتونین دکمههای ویرایشگر رو شخصیسازی کنین و حتماً ورودیها رو با Symfony’s HTML Sanitizer ایمنسازی کنین! 🔒
💡 نگران attachment ها هم نباشید . اون هارو هم بخوبی پشتیبانی میکنه و راحت میتونید دریافتشون کنید و مدیریتشون کنید
💡 کامپوننت لایوایری هم داره که میتونید توی پروژه های لایوایری هم ازش استفاده کنید .
💡 داکیومنت خوب و تکمیلی داره که میتونید ریپازیتوری مربوطه را مشاهده کنید . لینک
اگه به یه ویرایشگر متن قوی برای لاراول نیاز دارین، این پکیج رو امتحان کنین! 🚀
اگه توی پروژههاتون نیاز به یه ویرایشگر متن پیشرفته دارین، پکیج 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 = ['denoscription']; // فیلدهای ویرایشگر متن
protected $fillable = ['name', 'price', 'type', 'denoscription'];
}
📝 اعتبارسنجی در Form Request
$this->validate([
'name' => ['required', 'string', 'max:255'],
'price' => ['required', 'decimal:10,2'],
'type' => ['required'],
'denoscription' => ['nullable', 'string'],
]);
🖋 استفاده از Blade Component
<x-trix-input id="denoscription" name="denoscription"
:value="old('denoscription', $product->denoscription?->toTrixHtml())" autocomplete="off" />
💡 میتونین دکمههای ویرایشگر رو شخصیسازی کنین و حتماً ورودیها رو با Symfony’s HTML Sanitizer ایمنسازی کنین! 🔒
💡 نگران attachment ها هم نباشید . اون هارو هم بخوبی پشتیبانی میکنه و راحت میتونید دریافتشون کنید و مدیریتشون کنید
💡 کامپوننت لایوایری هم داره که میتونید توی پروژه های لایوایری هم ازش استفاده کنید .
💡 داکیومنت خوب و تکمیلی داره که میتونید ریپازیتوری مربوطه را مشاهده کنید . لینک
اگه به یه ویرایشگر متن قوی برای لاراول نیاز دارین، این پکیج رو امتحان کنین! 🚀
GitHub
GitHub - tonysm/rich-text-laravel at madewithlaravel.com
Integrates the Trix Editor with Laravel. Inspired by the Action Text gem from Rails. - GitHub - tonysm/rich-text-laravel at madewithlaravel.com
👍8🔥4❤🔥2
🔐 افزایش امنیت حساب با
لاراول یه قابلیت امنیتی قوی داره که با
🛠 چطور پیادهسازی کنیم؟
مثلاً وقتی کاربر فعالیت مشکوک حس کرد، میتونیم همه سشنها (بهجز فعلی) رو ببندیم:
✅ نکته: این قابلیت نیاز به
🔑 تغییر رمز عبور + خروج از تمام دستگاهها
🔒 چرا این قابلیت مهمه؟
✅ کاربر میتونه روی امنیت حساب خودش کنترل بیشتری داشته باشه.
✅ دسترسی غیرمجاز به حساب به خاطر سشنهای فراموششده جلوگیری میشه.
یه لایهی امنیتی قویتر برای اپلیکیشنهای لاراول!🔥
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', 'رمز عبور بروزرسانی شد و همهی دستگاههای دیگر خارج شدند');
}
}
🔒 چرا این قابلیت مهمه؟
✅ کاربر میتونه روی امنیت حساب خودش کنترل بیشتری داشته باشه.
✅ دسترسی غیرمجاز به حساب به خاطر سشنهای فراموششده جلوگیری میشه.
یه لایهی امنیتی قویتر برای اپلیکیشنهای لاراول!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release v12.0.0 · laravel/framework
[12.x] Prep Laravel v12 by @driesvints in #50406
[12.x] Make Str::is() match multiline strings by @SjorsO in #51196
[12.x] Use native MariaDB CLI commands by @staudenmeir in #51505
[12.x] Adds miss...
[12.x] Make Str::is() match multiline strings by @SjorsO in #51196
[12.x] Use native MariaDB CLI commands by @staudenmeir in #51505
[12.x] Adds miss...
❤🔥14👍4🕊2🔥1
کیت استارتر های جدید 🔥
Vue: https://github.com/laravel/vue-starter-kit
React: https://github.com/laravel/react-starter-kit
Livewire: https://github.com/laravel/livewire-starter-kit
Vue: https://github.com/laravel/vue-starter-kit
React: https://github.com/laravel/react-starter-kit
Livewire: https://github.com/laravel/livewire-starter-kit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍1
🚀 خوب Laravel 12 و قابلیت جدید `when()` با Closure!
توسعهدهندههای لاراول، احتمالاً با متد
💡 چرا این قابلیت مهمه؟
چون باعث میشه شرطهای پیچیدهتر رو بهشکل خواناتر و تمیزتر بنویسیم!
مثال:
یا برای تعیین مهلت پرداخت فاکتور:
✅ نتیجه؟ کد تمیزتر، خواناتر و انعطافپذیرتر! 😎
@panicdev
توسعهدهندههای لاراول، احتمالاً با متد
when() آشنا هستین، ولی میدونستین که توی Laravel 12 به بعد حالا میتونین از Closure بهعنوان شرط استفاده کنین؟ 🤌 💡 چرا این قابلیت مهمه؟
چون باعث میشه شرطهای پیچیدهتر رو بهشکل خواناتر و تمیزتر بنویسیم!
مثال:
$taxRate = when(
$country === 'US',
fn() => 0.07, // ۷٪ مالیات برای آمریکا
fn() => 0.2 // ۲۰٪ مالیات برای سایر کشورها
);
یا برای تعیین مهلت پرداخت فاکتور:
$invoiceDueDate = when(
fn() => $user->isVIP() && now()->isWeekday(),
fn() => now()->addDays(10), // کاربران VIP ده روز اضافه دارند
fn() => now()->addDays(5) // کاربران عادی پنج روز اضافه دارند
);
✅ نتیجه؟ کد تمیزتر، خواناتر و انعطافپذیرتر! 😎
@panicdev
🔥16❤🔥1👍1
🚀 معرفی
لاراول یه helper به اسم
🔹 مثال ساده:
✅ پاسخ فوراً به کاربر نمایش داده میشه، اما بعد از ۳ ثانیه، لاگ ذخیره میشه!
🔹 کاربرد واقعی:
مثلاً توی یه صفحهی مشاهده دوره آموزشی، میخوایم دوره رو به عنوان "در حال پیشرفت" برای کاربر علامت بزنیم، ولی این عملیات نیازی نداره که قبل از نمایش صفحه اجرا بشه:
✅ کاربر صفحه رو فوراً میبینه، اما عملیات در پسزمینه اجرا میشه.
🔥 چرا
✔️ برای کارهای سبک و سریع که نیاز به اجرا در لحظه ندارن.
✔️ نیازی به تنظیمات صف و اجرای
✔️ پردازش بعد از ارسال پاسخ انجام میشه، بدون تأخیر در نمایش صفحه!
⚠️ بهتره برای کارهای سنگین مثل پردازش ویدیو از صفها استفاده کنین، نه `defer`!
نتیجه: یه ابزار عالی برای بهینهسازی درخواستهای لاراول! 🚀✨
defer در لاراول لاراول یه helper به اسم
defer داره که میتونین بعضی از پردازشها رو بعد از ارسال پاسخ اجرا کنین، بدون نیاز به صفها! 🎯 🔹 مثال ساده:
Route::get('/', function () {
defer(function () {
sleep(3);
\Log::info('Some log');
});
return response(' پاسخ ارسال شد');
});✅ پاسخ فوراً به کاربر نمایش داده میشه، اما بعد از ۳ ثانیه، لاگ ذخیره میشه!
🔹 کاربرد واقعی:
مثلاً توی یه صفحهی مشاهده دوره آموزشی، میخوایم دوره رو به عنوان "در حال پیشرفت" برای کاربر علامت بزنیم، ولی این عملیات نیازی نداره که قبل از نمایش صفحه اجرا بشه:
defer(fn () => $this->addCourseToProgress->handle(auth()->user(), $course));
✅ کاربر صفحه رو فوراً میبینه، اما عملیات در پسزمینه اجرا میشه.
🔥 چرا
defer بهتر از صفهاست؟ ✔️ برای کارهای سبک و سریع که نیاز به اجرا در لحظه ندارن.
✔️ نیازی به تنظیمات صف و اجرای
queue:work نداره. ✔️ پردازش بعد از ارسال پاسخ انجام میشه، بدون تأخیر در نمایش صفحه!
⚠️ بهتره برای کارهای سنگین مثل پردازش ویدیو از صفها استفاده کنین، نه `defer`!
نتیجه: یه ابزار عالی برای بهینهسازی درخواستهای لاراول! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🛠 چطور `defer` در لاراول کار میکند؟
در نگاه اول، ممکنه فکر کنین که
لاراول از طریق Middleware مخصوص به نام
🔍 پشت صحنه اجرای
📌 لاراول متدی به نام
✅ یعنی اگه پاسخ موفقیتآمیز باشه (کد ۲xx یا ۳xx)، توابع
🤔 چطور لاراول بعد از ارسال پاسخ،
شاید عجیب باشه، چون درخواست کاربر تموم شده و پاسخ ارسال شده، ولی چطور
✅ دلیلش اینه که PHP روی FastCGI اجرا میشه که اجازه میده پردازش بعد از ارسال پاسخ هم باز بمونه و اجرا بشه!
📌 ترتیب اجرای
1️⃣ کاربر
2️⃣ لاراول کالبک
3️⃣ پاسخ (
4️⃣ (پردازش PHP هنوز باز هست) 🚀
5️⃣ لاراول متد
6️⃣ و`defer` اجرا شده و عملیات در پسزمینه پردازش میشه.
7️⃣ بعد PHP این کد رو بدون تأخیر در نمایش پاسخ، در پسزمینه اجرا میکنه.
✅ این دقیقاً مثل queue نیست ولی شبیه اجراهای پسزمینهای هست که بعد از ارسال پاسخ، وظایف رو اجرا میکنه!
@panicdev
در نگاه اول، ممکنه فکر کنین که
defer یه چیزی شبیه صفها (queues) هست، ولی در واقع اینطور نیست! لاراول از طریق Middleware مخصوص به نام
InvokeDeferredCallbacks پردازشهای defer رو بعد از ارسال پاسخ اجرا میکنه. 🔍 پشت صحنه اجرای
defer 📌 لاراول متدی به نام
terminate داره که بعد از ارسال پاسخ، توابع defer ذخیرهشده رو اجرا میکنه: class InvokeDeferredCallbacks
{
public function terminate(Request $request, Response $response)
{
Container::getInstance()
->make(DeferredCallbackCollection::class)
->invokeWhen(fn ($callback) => $response->getStatusCode() < 400 || $callback->always);
}
}
✅ یعنی اگه پاسخ موفقیتآمیز باشه (کد ۲xx یا ۳xx)، توابع
defer اجرا میشن! 🤔 چطور لاراول بعد از ارسال پاسخ،
defer رو اجرا میکنه؟ شاید عجیب باشه، چون درخواست کاربر تموم شده و پاسخ ارسال شده، ولی چطور
defer هنوز اجرا میشه؟ 🤔 ✅ دلیلش اینه که PHP روی FastCGI اجرا میشه که اجازه میده پردازش بعد از ارسال پاسخ هم باز بمونه و اجرا بشه!
📌 ترتیب اجرای
defer در لاراول 1️⃣ کاربر
/ رو باز میکنه. 2️⃣ لاراول کالبک
defer رو ذخیره میکنه (ولی اجرا نمیکنه). 3️⃣ پاسخ (
response) فوراً به کاربر نمایش داده میشه. 4️⃣ (پردازش PHP هنوز باز هست) 🚀
5️⃣ لاراول متد
terminate رو اجرا میکنه. 6️⃣ و`defer` اجرا شده و عملیات در پسزمینه پردازش میشه.
7️⃣ بعد PHP این کد رو بدون تأخیر در نمایش پاسخ، در پسزمینه اجرا میکنه.
✅ این دقیقاً مثل queue نیست ولی شبیه اجراهای پسزمینهای هست که بعد از ارسال پاسخ، وظایف رو اجرا میکنه!
@panicdev
👍7🔥1
من به عنوان attacker وب سایت شمارو مورد بررسی قرار میدم
و میخوام که یوزر نیم پسورد کاربران شمارو پیدا کنم !
یک روش که میتونه کار من رو راحت کنه این هستش که وقتی یوزر نیم و پسورد رو وارد میکنم
به من یک خطای واضح برگرونید
مثلا
- ایمیل وارد شده یافت نشد
- پسورد وارد شده اشتباه است .
خوب من اگه رندوم ایمیل های مختلف رو وارد کنم و یه جا به جای خطای
- ایمیل / یوزر نیم وارد شده اشتباه است ببینم که خطای پسورد وارد شده اشتباه هست رو برگردوندید .
میفهمم که این ایمیل تو سیستم شما وجود داره و میرم سراغ پسورد .
حالا برای این که کار من رو سخت کنید .
میاید تحت هر شرایطی ( چه ایمیل چه پسورد ) اشتباه باشه
خطا میدید که اطلاعات وارد شده صحیح نمی باشد .
خوب من میام یکم پیشرفته تر عمل میکنم
چند درخواست همزمان میفرستم سمت سرور شما و تایم ریسپانسی که به من میدید رو چک میکنم
هرجایی که ریسپانس زودتری برگردونید میفهمم که یوزر/ایمیلی که دادم تو سیستم شما نیست .
هرجایی که ریسپانس بیشتر طول کشید میفهمم که ایمیل/یوزر نیم داخل سیستم شما هست و فقط پسورد اشتباه هست .
برای این که کار من و سخت تر کنید . چه راه حلی دارید ؟ ( بدون AI بگید اگر که جوابی دارید . )
Please open Telegram to view this post
VIEW IN TELEGRAM
Panic Dev
مچکرم از مشارکتتون
جواب ها تا حدی زیادی نزدیک بود ، دمتون گرم
هدف تمرکز روی خود عمل بود . بدون در نظر گرفتن بلاک کردن ، ریت لیمیت و امثال این ها .
اما هدف از طرح چالش این بود که شما رو با کلاس
تو لاراول آشنا کنم که ۲۰۲۲ معرفی شد .
شاید خیلی ها تو داکیومنت دیده باشیدش ولی نمیدونستید کاربرد واقعیش چی بوده . و یا کجا میشه ازش استفاده کرد
یا اینکه با این حمله و مفهوم
لاراول برای چنین چالش هایی که فقط برای لاگین نیستش
میتونه برای عملیات کریپتوگرافی هم باشه . امده این کلاس و فیچر و اضافه کرده😊
که مثالش میشه این
اگر علاقه دارید برای توضیحات بیشتر میتونید این لینک هارم مشاهده نمایید .
🔗 داکیومنت
🔗مقاله مربوطه
@panicdev
جواب ها تا حدی زیادی نزدیک بود ، دمتون گرم
هدف تمرکز روی خود عمل بود . بدون در نظر گرفتن بلاک کردن ، ریت لیمیت و امثال این ها .
اما هدف از طرح چالش این بود که شما رو با کلاس
Timeboxتو لاراول آشنا کنم که ۲۰۲۲ معرفی شد .
شاید خیلی ها تو داکیومنت دیده باشیدش ولی نمیدونستید کاربرد واقعیش چی بوده . و یا کجا میشه ازش استفاده کرد
یا اینکه با این حمله و مفهوم
Timeless Timing Attack اشنا نبودید لاراول برای چنین چالش هایی که فقط برای لاگین نیستش
میتونه برای عملیات کریپتوگرافی هم باشه . امده این کلاس و فیچر و اضافه کرده
که مثالش میشه این
protected function hasValidCredentials($user, $credentials)
{
return $this->timebox
->call(function ($timebox) use ($user, $credentials) {
$validated = ! is_null($user)
&& $this->provider->validateCredentials($user, $credentials);
if ($validated) {
$timebox->returnEarly();
$this->fireValidatedEvent($user);
}
return $validated;
}, 200 * 1000);
}
اگر علاقه دارید برای توضیحات بیشتر میتونید این لینک هارم مشاهده نمایید .
🔗 داکیومنت
🔗مقاله مربوطه
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Laravel
Helpers - Laravel 12.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
👍6🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣24👍2🌚2😁1
لایووایر توی نسخه جدیدش چندتا دایرکتیو و تابع جدید معرفی کرده 🥳
اول از همه اینکه شما به سادگی و با ران کردن
میتونید به راحتی این آپدیت رو دریافت کنید و از این فیچرها استفاده کنید📝
حالا هرکدوم از این موارد چیکار میکنن؟🙄
با استفاده از
توی Blade به اینصورت عمل کنید
نتیجه این میشه که 85 توی spanتون قرار میگیره🤟
با استفاده از wire:show میتونید بر اساس یک پروپرتی توی کلاس کامپوننت؛ یک المان از blade رو نمایش بدید یا مخفی کنید
توی Blade به اینصورت عمل کنید
و زمانی که مقدار showModal برابر با true بشه، div شما نمایش داده میشه.
حتی میتونید از transition ها برای انیمیت کردنش استفاده کنید✨
مستندات توابع و دایرکتیو هارو میتونید از داکیومنت ببینید🙄
⭐️ wire:text docs
⭐️ wire:show docs
⭐️ wire:transition docs
⭐️ wire:cloak docs
⭐️ $js & this->js() docs
wire:text
wire:show
wire:cloak
wire:transition
$js(...)
$this->js(...)
اول از همه اینکه شما به سادگی و با ران کردن
composer update livewire/livewire
میتونید به راحتی این آپدیت رو دریافت کنید و از این فیچرها استفاده کنید
حالا هرکدوم از این موارد چیکار میکنن؟
با استفاده از
wire:text میتونید به راحتی متن پروپرتیتون رو توی المان های blade قرار بدیدpublic int $likes = 85;
توی Blade به اینصورت عمل کنید
<span wire:text="likes"></span>
نتیجه این میشه که 85 توی spanتون قرار میگیره
با استفاده از wire:show میتونید بر اساس یک پروپرتی توی کلاس کامپوننت؛ یک المان از blade رو نمایش بدید یا مخفی کنید
public bool $showModal = false;
توی Blade به اینصورت عمل کنید
<div wire:show="showModal"></div>
و زمانی که مقدار showModal برابر با true بشه، div شما نمایش داده میشه.
حتی میتونید از transition ها برای انیمیت کردنش استفاده کنید
مستندات توابع و دایرکتیو هارو میتونید از داکیومنت ببینید
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9👍9