Developer.manifest – Telegram
Developer.manifest
78 subscribers
64 photos
2 videos
1 file
28 links
👋 سلام! من سعید عبدالهیان (saeedvir) هستم.
💻 توسعه‌دهنده وب و متخصص PHP / Laravel
📂 پروژه‌ها و نمونه‌کارها:
https://github.com/saeedvir

تماس با من
@PhpWebDeveloper

🚀 علاقه‌مند به ساخت پروژه‌های تمیز، بهینه و حرفه‌ای
Download Telegram
چه طور در PowerShell دستورات خلاصه درست کنیم ؟

ابتدا پاورشل را باز کنید و دستور زیر را اجرا کنید :
echo $PROFILE


سپس ئدر مسیر مشخص شده ، یک فایل ایجاد کنید
برای مثال :
C:\Users\YourName\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1


حالا داخل این فایل عبارت زیر را وارد کنید :
function a {
& php .\artisan @args
}


فایل را ذخیره کنید.

حالا از پاورشل خارج شوید.

از این به بعد در هر پوشه پروژه لاراول می توانید دستور زیر را استفاده کنید :

a optimize
a optimize:clear
a route:list


در حقیقت دستور a معادل php artisan هست.


😎👇
@developerManifest
🔥1
مقایسه حالت‌های بارگذاری تصاویر

مرورگرها هنگام نمایش تصاویر، می‌توانند از دو ویژگی مهم استفاده کنند:

1️⃣ ویژگی loading :
تعیین می‌کند تصویر کی و چگونه بارگذاری شود

حالت Lazy:

فقط وقتی تصویر به نزدیکی صفحه می‌آید بارگذاری می‌شود (صرفه‌جویی در پهنای باند).

حالت eager:
بلافاصله با بارگذاری صفحه، همه تصاویر شروع به دانلود می‌کنند.

2️⃣ ویژگی decoding
تعیین می‌کند تصویر چطور رمزگشایی شود

حالت sync :
مرورگر هنگام دریافت تصویر، رندر صفحه را متوقف می‌کند تا تصویر رمزگشایی شود.

حالت async:
رمزگشایی تصویر به صورت غیربلاک‌کننده انجام می‌شود و رندر صفحه متوقف نمی‌شود.

به طور کلی 4 حالت داریم :

lazy + async:
بهترین حالت برای گالری‌ها و لیست‌های طولانی

lazy + sync
مناسب برای صفحاتی با تعداد کم تصویر، اما کمی کندتر در اسکرول کردن صفحه

eager + async
خوب برای تصویر اصلی یا تصاویر مهم، اما برای ۲۰ تصویر همزمان سنگین می‌شود

eager + sync
⚠️ بدترین حالت برای عملکرد و اسکرول روان، فقط برای تصاویر تک و حیاتی استفاده شود

<img alt="" src="" decoding="async" loading="lazy">


اطلاعات بیشتر در :😎👇
@DeveloperManifest
یک نمونه از استفاده از IF در CSS مدرن :

body {
background: if(
media(width > 850px): #9400D3; media(width > 700px): #4B0082;
media(width > 600px): #0000FF; media(width > 500px): #00FF00;
media(width > 400px): #FFFF00; media(width > 300px): #FF7F00;
else:
#ff0000
);
min-height: 100vh;
font-family: system-ui, -apple-system, sans-serif;
transition: background 0.3s ease;
}


اطلاعات بیشتر در :😎👇
@DeveloperManifest
پکیج های Verta و morilog به سایت Context7 اضافه شد.

از این پس برای دریافت نمونه کد یا سوال در مورد این پکیج ها می تونید از آدرس های زیر استفاده کنید :

https://context7.com/hekmatinasser/verta?tab=chat

https://context7.com/morilog/jalali?tab=chat


برای مثال از هوش مصنوعی بخواهید یک نمونه از اعتبارسنجی تاریخ شمسی برای فرم ها به شما بدهد :

Basic Date Validation


use Illuminate\Http\Request;

public function store(Request $request)
{
$validated = $request->validate([
'birthday' => ['required', 'jdate'],
'appointment' => ['required', 'jdatetime'],
]);
}


Date Comparison Validation

$request->validate([
'start_date' => ['required', 'jdate'],
'end_date' => ['required', 'jdate_after:' . $request->start_date],
'event_date' => ['required', 'jdate_before:1402-01-01'],
'registration' => ['required', 'jdate_after_equal:1401-01-01'],
'deadline' => ['required', 'jdate_before_equal:1401-12-29'],
]);



اطلاعات بیشتر در :😎👇
@DeveloperManifest
خدا رو شکر این پکیجی که نوشتم مورد عنایت تیم LaravelNews قرار گرفته 😊😎

Supabase Package for Laravel

https://laravel-news.com/supabase-laravel

https://github.com/saeedvir/supabase
🔥2🍾1
می دونستید HeidiSQL قابلیت تولید داده های Fake داره ؟

برای پرکردن جدول ها به راحتی می تونید استفاده کنید.

#tip

@developerManifest
یک اسلایدشو سبک و زیبا / بهینه سازی شده برای موبایل به همراه Lazy Loading
https://dev.to/saeedvir/pure-cssjs-slideshow-30bk




نسخه bootstrap

نسخه Tailwind

😎👇
@developerManifest
1
اشتباهات رایج Livewire

قسمت اول

در مثال زیر فیلتر محصولات در تابع 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# :

همیشه اصل را بر سادگی و کاهش پیچیدگی و درک راحت تر کد بگذارید.

چرا که با بزرگ شدن و رشد پروژه به کاهش اتلاف وقت و هزینه توسعه منجر میشه.


نمونه یک:
مشکل تابع بزرگ با کارهای زیاد

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 را از دیتابیس واکشی می کنید:
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
اجرا برنامه های ویندوزی روی اندروید !

آخرین نسخه را از صفحه گیت هاب آن دانلود کنید

توضیحات کاربردی :
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
1
یک رابط کاربری جذاب برای Livewire

برای دریافت آخرین نسخه از این رابط کاربری ،کافی هست این دستور را در محیط پروژه بزنید :
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
👍2