اشتباهات رایج Livewire
قسمت اول
در مثال زیر فیلتر محصولات در تابع mount بعد از تغییر کردن ، اعمال نمی شود.بنابراین باید در تابع Render قرار دهید.
قواعد اعتبارسنجی فرم ها را در From Request جداگانه قرار دهید
#اشتباهات_رایج
😎👇
@developerManifest
قسمت اول
در مثال زیر فیلتر محصولات در تابع mount بعد از تغییر کردن ، اعمال نمی شود.بنابراین باید در تابع Render قرار دهید.
// ❌
public function mount()
{
$this->products = Product::where('status', $this->filter)->get();
}
// ✅
public function render()
{
return view('livewire.products', [
'products' => Product::where('status', $this->filter)->get()
]);
}
قواعد اعتبارسنجی فرم ها را در From Request جداگانه قرار دهید
// ❌
public function rules(): array
{
return [
'field1' => ['required', 'string'],
'field2' => ['required', 'integer'],
'field3' => ['required', 'boolean'],
];
}
// ✅
public function rules(): array
{
return (new MyFormRequest)->rules();
}
#اشتباهات_رایج
😎👇
@developerManifest
نمونه های Refactoring# :
همیشه اصل را بر سادگی و کاهش پیچیدگی و درک راحت تر کد بگذارید.
چرا که با بزرگ شدن و رشد پروژه به کاهش اتلاف وقت و هزینه توسعه منجر میشه.
نمونه یک:
مشکل تابع بزرگ با کارهای زیاد
به
نمونه دوم:
مشکل : کد تکراری
به
#کد_تمیز
#clean_code
#زیبایی_در_سادگی
مطالب بیشتر در
😎👇
@developerManifest
همیشه اصل را بر سادگی و کاهش پیچیدگی و درک راحت تر کد بگذارید.
چرا که با بزرگ شدن و رشد پروژه به کاهش اتلاف وقت و هزینه توسعه منجر میشه.
نمونه یک:
مشکل تابع بزرگ با کارهای زیاد
function processOrder($order) {
// Validate order
if (empty($order['customer']) || empty($order['items'])) { throw new Exception('Invalid order'); } // Calculate total
$total = 0; foreach ($order['items'] as $item) { $total += $item['price'] * $item['quantity']; } // Apply discount
if (!empty($order['discount'])) { $total -= $total * $order['discount']; } // Save (mock)
echo "Order saved. Total: $total\n"; // Send email (mock)
echo "Email sent to customer.\n";
}به
function processOrder($order) {
validateOrder($order);
$total = calculateTotal($order);
saveOrder($order, $total);
notifyCustomer($order);
}
function validateOrder($order) { /* ... */ }
function calculateTotal($order) { /* ... */ }
function saveOrder($order, $total) { /* ... */ }
function notifyCustomer($order) { /*نمونه دوم:
مشکل : کد تکراری
$price = $product['price'] * $quantity; $tax = $price * 0.19; $total = $price + $tax; $fee = $service['fee'] * $hours; $tax = $fee * 0.19; $final = $fee + $tax;
به
function addTax($amount, $rate = 0.19) { return $amount * (1 + $rate); } $total = addTax($product['price'] * $quantity); $final = addTax($service['fee'] * $hours);#کد_تمیز
#clean_code
#زیبایی_در_سادگی
مطالب بیشتر در
😎👇
@developerManifest
اشتباهات لاراول / قسمت دوم
یک مثال کاربردی از تابع once در لاراول:
فرض کنید توسط تابع getSettings تنظیمات key/value را از دیتابیس واکشی می کنید:
شما در هر بار فراخوانی یکبار به دیتابیس درخواست میدید
حالا با این تغییر یکبار درخواست به دیتابیس داده میشه و دفعه دوم و سوم و.... از کش کردن خروجی این تابع بهره میگیرید.
این کش تا پایان درخواست معتبر است.
#اشتباهات_رایج
مطالب بیشتر در
😎👇
@developerManifest
یک مثال کاربردی از تابع once در لاراول:
فرض کنید توسط تابع getSettings تنظیمات key/value را از دیتابیس واکشی می کنید:
function getSettings()
{
return DB::table('settings')->first();
}
$settings = getSettings();
$footerSettings = getSettings();
$headerSettings = getSettings();
شما در هر بار فراخوانی یکبار به دیتابیس درخواست میدید
function getSettings()
{
return once(function () {
return DB::table('settings')->first();
});
}
$settings = getSettings();
$footerSettings = getSettings();
$headerSettings = getSettings();
حالا با این تغییر یکبار درخواست به دیتابیس داده میشه و دفعه دوم و سوم و.... از کش کردن خروجی این تابع بهره میگیرید.
این کش تا پایان درخواست معتبر است.
#اشتباهات_رایج
مطالب بیشتر در
😎👇
@developerManifest
👍2
اجرا برنامه های ویندوزی روی اندروید !
آخرین نسخه را از صفحه گیت هاب آن دانلود کنید
توضیحات کاربردی :
1️⃣ ساخت محفظه (Container)
بالا سمت راست یه آیکون ➕ میبینی؛ بزن روش تا یک محیط اجرای جدید برای برنامههای ویندوز بسازی.
2️⃣ نکات مهم قبل از ساخت محفظه
🔸 رزولوشن مناسب انتخاب کن
اگه گوشیت قدیمیه یا سختافزار ضعیفتری داره، رزولوشن پایینتر رو از قسمت Screen size انتخاب کن تا سرعت بهتر بشه.
🔹 برای پردازندههای اسنپدراگون
گزینه Turnip (Adreno) رو انتخاب کن؛ بهترین پرفورمنس برای گرافیک رو میده.
🔸 برای پردازندههای مدیاتک یا سایر مدلها
درایور گرافیک رو روی VirGL (Universal) بذار؛ سازگاری و عملکرد بهتری میگیری.
⚠️ این نرم افزار هنوز در مراحل تست هست.
مطالب بیشتر در
😎👇
@developerManifest
آخرین نسخه را از صفحه گیت هاب آن دانلود کنید
توضیحات کاربردی :
https://github.com/brunodev85/winlator?tab=readme-ov-file#useful-tips
https://github.com/brunodev85/winlator/issues?q=is%3Aissue
1️⃣ ساخت محفظه (Container)
بالا سمت راست یه آیکون ➕ میبینی؛ بزن روش تا یک محیط اجرای جدید برای برنامههای ویندوز بسازی.
2️⃣ نکات مهم قبل از ساخت محفظه
🔸 رزولوشن مناسب انتخاب کن
اگه گوشیت قدیمیه یا سختافزار ضعیفتری داره، رزولوشن پایینتر رو از قسمت Screen size انتخاب کن تا سرعت بهتر بشه.
🔹 برای پردازندههای اسنپدراگون
گزینه Turnip (Adreno) رو انتخاب کن؛ بهترین پرفورمنس برای گرافیک رو میده.
🔸 برای پردازندههای مدیاتک یا سایر مدلها
درایور گرافیک رو روی VirGL (Universal) بذار؛ سازگاری و عملکرد بهتری میگیری.
⚠️ این نرم افزار هنوز در مراحل تست هست.
مطالب بیشتر در
😎👇
@developerManifest
دریافت عکس های لحظه ای از زمین با ماهواره تصویربرداری روسی
ویدیو جالبی هست ، ببینید و لذت ببرید
لینک ویدیو پیدا کردن زمان عبور ایستگاه فضایی
ارتباط رادیویی با ایستگاه فضایی
یک مطلب کامل در ویرگول
اطلاعات بیشتر در
@developerManifest
ویدیو جالبی هست ، ببینید و لذت ببرید
لینک ویدیو پیدا کردن زمان عبور ایستگاه فضایی
ارتباط رادیویی با ایستگاه فضایی
یک مطلب کامل در ویرگول
اطلاعات بیشتر در
@developerManifest
❤1
یک رابط کاربری جذاب برای Livewire
برای دریافت آخرین نسخه از این رابط کاربری ،کافی هست این دستور را در محیط پروژه بزنید :
توضیحات کامل در رابطه با این رابط کاربری
✅✅ در روزهای آینده یک نمونه پنل مدیریت قرار داده میشه
#لایووایر #livewire
#ui
اطلاعات بیشتر در
😎👇
@developerManifest
برای دریافت آخرین نسخه از این رابط کاربری ،کافی هست این دستور را در محیط پروژه بزنید :
composer require sheaf/cli
توضیحات کامل در رابطه با این رابط کاربری
<x-ui.textarea
wire:model="smallText"
placeholder="Small textarea"
rows="2"
/>
✅✅ در روزهای آینده یک نمونه پنل مدیریت قرار داده میشه
#لایووایر #livewire
#ui
اطلاعات بیشتر در
😎👇
@developerManifest
❤3
یک رابط کاربری بهبود یافته Bootstrap 5.3.8
مدال ها (Modal) بخش مهمی از هر پنل مدیریت هستند ، طراحی واضح و مشخص آن ها تاثیر خوبی روی تجربه کاربری دارند.
استفاده از رنگ ها می تونه منظور را به خوبی برسونه.
#ui
#ux
#bootstrap
اطلاعات بیشتر در 😎👇
@developerManifest
مدال ها (Modal) بخش مهمی از هر پنل مدیریت هستند ، طراحی واضح و مشخص آن ها تاثیر خوبی روی تجربه کاربری دارند.
استفاده از رنگ ها می تونه منظور را به خوبی برسونه.
#ui
#ux
#bootstrap
اطلاعات بیشتر در 😎👇
@developerManifest
👍2
یک نکته کاربردی در CSS :
با این مدیا کوئری شما می توانید کاهش انیمیشن (به درخواست کاربر یا تنظیمات سیستم عامل) را متوجه شوید.
#css
#ui
#ux
اطلاعات بیشتر در 😎👇
@developerManifest
@media (prefers-reduced-motion: reduce) {
}با این مدیا کوئری شما می توانید کاهش انیمیشن (به درخواست کاربر یا تنظیمات سیستم عامل) را متوجه شوید.
#css
#ui
#ux
اطلاعات بیشتر در 😎👇
@developerManifest
در بازی The Farmer Was Replaced یک پهپاد را با استفاده از یک زبان ساده شبیه پایتون برنامهریزی می کنید کنید تا کارهای مختلف کشاورزی را به طور کامل خودکار انجام دهد در غیر این صورت بسیار سخت خواهند بود. فقط با فشار دادن “execute” همه کارها انجام خواهد شد.
مشاهده در steam
دانلود بازی
#game
#python
اطلاعات بیشتر در 😎👇
@developerManifest
مشاهده در steam
دانلود بازی
#game
#python
اطلاعات بیشتر در 😎👇
@developerManifest
بیپروژه ماندهام چو کُدی فراموش
چون سایت بیکاربر، غریب و خاموش
نه مشتری آمد، نه کارفرما زنگ
ماندم بهسان سرور، ولی بیدرنگ!
کُدی ننوشتهام، پروژه ندارم هنوز
ماندهام حیران، مثل مرورگر فریز و سوز
گیتهام خالی است، بیکارم شب و نهار
مثل دکمهی Submit، بیکلیک و بیکار!
#طنز_نویس
اطلاعات بیشتر 😎👇
@developermanifest
چه طور در PHP تصاویر مات درست کنیم؟ (با استفاده از gd)
کافی هست کلاس زیر را به پروژه اضافه کنید:
نحوه استفاده :
⚠️ دقت کنید هرچه اندازه تصویر ساخته شده بزرگتر باشه ، زمان ایجاد تصویر هم طولانی تر میشه ، پس می توانید ساخت تصویر را در لاراول به صورت یک job تعریف کنید.
❇️ امکان استفاده در
Spatie Media Library
هست ؟
✅ بله در کامنت ها یک مثال گذاشتم ببینید
اطلاعات بیشتر در 😎👇
@developerManifest
کافی هست کلاس زیر را به پروژه اضافه کنید:
https://gist.github.com/saeedvir/49b858ad58b4b19b4591898c8948300b
نحوه استفاده :
$thumb = new ThumbBlur(
source: public_path('original.png'),
width: 640,
height: 480,
blur: 30,
quality: 45,
fileType: 'png',
blurIterations: 1,
outputDir: ''
);
$path = $thumb->generate();
⚠️ دقت کنید هرچه اندازه تصویر ساخته شده بزرگتر باشه ، زمان ایجاد تصویر هم طولانی تر میشه ، پس می توانید ساخت تصویر را در لاراول به صورت یک job تعریف کنید.
❇️ امکان استفاده در
Spatie Media Library
هست ؟
✅ بله در کامنت ها یک مثال گذاشتم ببینید
اطلاعات بیشتر در 😎👇
@developerManifest
👍4👌1
چه طور از پکیج های کامپوزر به صورت لوکال استفاده کنیم ؟
https://dev.to/robertobutti/how-to-use-local-packages-in-composer-a-guide-for-php-developers-h89
#tip
#composer
#laravel
اطلاعات بیشتر در 😎👇
@developerManifest
https://dev.to/robertobutti/how-to-use-local-packages-in-composer-a-guide-for-php-developers-h89
#tip
#composer
#laravel
اطلاعات بیشتر در 😎👇
@developerManifest
❤2
GraphQL
یک زبان پرسوجو (Query Language) و همچنین یک محیط اجرایی برای APIهاست که توسط فیسبوک توسعه داده شد. هدف اصلی آن این است که کلاینت بتواند دقیقاً همان دادهای را که نیاز دارد درخواست کند؛ نه کمتر و نه بیشتر.
برای پیاده سازی در لاراول ، پکیج های زیادی هست. از جمله :
#laravel
#tip
#package
اطلاعات بیشتر در 😎👇
@developerManifest
یک زبان پرسوجو (Query Language) و همچنین یک محیط اجرایی برای APIهاست که توسط فیسبوک توسعه داده شد. هدف اصلی آن این است که کلاینت بتواند دقیقاً همان دادهای را که نیاز دارد درخواست کند؛ نه کمتر و نه بیشتر.
برای پیاده سازی در لاراول ، پکیج های زیادی هست. از جمله :
nuwave/lighthouse
rebing/graphql-laravel
mll-lab/laravel-graphiql
secundo/laravel-graphql-query-builder
https://lighthouse-php.com/master/getting-started/installation.html
#laravel
#tip
#package
اطلاعات بیشتر در 😎👇
@developerManifest