Forwarded from کانال آموزشی لاراول (PapiDon)
🧐 What is Impure Functions ?
✨ توابع ناخالص یا Impure Functions در مقابل توابع خالص قرار دارند و دو ویژگی اصلی دارند:
1️⃣ وابستگی به حالت خارجی: ممکن است به متغیرها یا حالتهای خارجی وابسته باشند و خروجیشان تنها با توجه به ورودیها قابل پیشبینی نباشد.
2️⃣ وجود Side Effect: مثل تغییر متغیرهای خارجی, انجام ورودی/خروجی و غیره.
این تابع با گرفتن یک متغیر خارجی, مقدار آن را یک واحد افزایش میدهد.
⚠️ توابع ناخالص ممکن است پیچیدگی بیشتری به برنامه اضافه کنند و قابلیت تست و تحلیل برنامه را کاهش دهند. در برنامهنویسی تابعی, توصیه میشود که از توابع خالص بیشتری استفاده کنید تا برنامهی سادهتر و قابل فهمتری داشته باشید.
توابع ناخالص در برخی موارد لازم و مفید هستند, اما استفاده زیاد از آنها ممکن است به سختیهای بیشتری منجر شود. 💡
📌@PapiDon_state
✨ توابع ناخالص یا Impure Functions در مقابل توابع خالص قرار دارند و دو ویژگی اصلی دارند:
1️⃣ وابستگی به حالت خارجی: ممکن است به متغیرها یا حالتهای خارجی وابسته باشند و خروجیشان تنها با توجه به ورودیها قابل پیشبینی نباشد.
2️⃣ وجود Side Effect: مثل تغییر متغیرهای خارجی, انجام ورودی/خروجی و غیره.
let count = 0;
function increment() {
count++;
}
این تابع با گرفتن یک متغیر خارجی, مقدار آن را یک واحد افزایش میدهد.
⚠️ توابع ناخالص ممکن است پیچیدگی بیشتری به برنامه اضافه کنند و قابلیت تست و تحلیل برنامه را کاهش دهند. در برنامهنویسی تابعی, توصیه میشود که از توابع خالص بیشتری استفاده کنید تا برنامهی سادهتر و قابل فهمتری داشته باشید.
توابع ناخالص در برخی موارد لازم و مفید هستند, اما استفاده زیاد از آنها ممکن است به سختیهای بیشتری منجر شود. 💡
📌@PapiDon_state
❤2
Forwarded from کانال آموزشی لاراول (PapiDon)
🔍 آشنایی با دستور
همگان با موقعیتهایی مواجه شدهاند که نیاز به دریافت نتایج منحصر به فرد از دیتابیس دارند. در لاراول، این کار با استفاده از
📌 مثلا، برای دریافت نامهای منحصر به فرد کاربران:
📌 یا برای منحصر بودن بر اساس چندین ستون:
✨distinct
نتایج تکراری را حذف میکند و فقط نتایج منحصر به فرد را به شما نشان میدهد.
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
distinct در لاراولهمگان با موقعیتهایی مواجه شدهاند که نیاز به دریافت نتایج منحصر به فرد از دیتابیس دارند. در لاراول، این کار با استفاده از
distinct بسیار سادهتر است.📌 مثلا، برای دریافت نامهای منحصر به فرد کاربران:
$uniqueNames = DB::table('users')->distinct()->pluck('name');
📌 یا برای منحصر بودن بر اساس چندین ستون:
$uniqueData = DB::table('users')->select('account_id', 'email')->distinct()->get();
✨distinct
نتایج تکراری را حذف میکند و فقط نتایج منحصر به فرد را به شما نشان میدهد.
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
❤3👍1
Forwarded from کانال آموزشی لاراول (PapiDon)
✨What you do is what matters, not what you think or say or plan.
✨کاری که انجام میدهید مهم است، نه اینکه چه فکر یا چه حرف یا چه برنامهای دارید. - " جیسون فراید"
📌 @PapiDon_state
✨کاری که انجام میدهید مهم است، نه اینکه چه فکر یا چه حرف یا چه برنامهای دارید. - " جیسون فراید"
📌 @PapiDon_state
❤3
Forwarded from کانال آموزشی لاراول (PapiDon)
🛠 کوئری زدن در لاراول
در لاراول، با بهرهگیری از توابع گوناگون، میتوانید انواع جستجوها و کوئریها را برای دیتابیس خود تنظیم و اجرا کنید.
1️⃣ whereNull:
- جستجوی سطرهایی که مقدار خاصی در یک ستون خالی است.
- 📌
- جستجوی سطرهایی با مقدار تاریخی خاص در یک ستون.
- 📌
- جستجوی سطرهایی با مقدار ماهی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار روزی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار سالی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار زمانی خاص در یک ستون.
- 📌
- مقایسه مقادیر دو ستون با یکدیگر و یافتن سطرهای مطابق.
- 📌
- جستجو بر اساس شرط موجود.
- 📌
در لاراول، با بهرهگیری از توابع گوناگون، میتوانید انواع جستجوها و کوئریها را برای دیتابیس خود تنظیم و اجرا کنید.
1️⃣ whereNull:
- جستجوی سطرهایی که مقدار خاصی در یک ستون خالی است.
- 📌
User::whereNull('email_verified_at')->get();
2️⃣ whereDate:- جستجوی سطرهایی با مقدار تاریخی خاص در یک ستون.
- 📌
User::whereDate('created_at', '2023-10-10')->get();
3️⃣ whereMonth:- جستجوی سطرهایی با مقدار ماهی خاص در یک ستون تاریخی.
- 📌
User::whereMonth('created_at', '10')->get();
4️⃣ whereDay:- جستجوی سطرهایی با مقدار روزی خاص در یک ستون تاریخی.
- 📌
User::whereDay('created_at', '10')->get();
5️⃣ whereYear:- جستجوی سطرهایی با مقدار سالی خاص در یک ستون تاریخی.
- 📌
User::whereYear('created_at', '2023')->get();
6️⃣ whereTime:- جستجوی سطرهایی با مقدار زمانی خاص در یک ستون.
- 📌
User::whereTime('created_at', '=', '10:00:00')->get();
7️⃣ whereColumn:- مقایسه مقادیر دو ستون با یکدیگر و یافتن سطرهای مطابق.
- 📌
User::whereColumn('updated_at', '>', 'created_at')->get();
8️⃣ whereExists:- جستجو بر اساس شرط موجود.
- 📌
User::whereExists(function ($query) {
$query->select(DB::raw(1))
->from('orders')
->whereColumn('users.id', 'orders.user_id');
})->get();
📌 @PapiDon_state👍3
Forwarded from کانال آموزشی لاراول (PapiDon)
🔎 بررسی متد
🔹 این متد تمام سطوح آرایه را به یک سطح تبدیل میکند. به طور پیشفرض، تنها یک سطح از آرایه را هموار میکند. اما با تعیین یک عدد به عنوان آرگومان، میتوانید تعداد بیشتری از سطوح را هموار کنید.
📜 مثال کد:
✨برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
()Array.prototype.flat
در برنامهنویسی با جاوااسکریپت، گاهی اوقات با آرایههای چند بعدی سر و کار داریم که نیاز داریم آنها را به یک آرایه تک بعدی تبدیل کنیم. متد ()flat این کار را برای ما آسان میکند.🔹 این متد تمام سطوح آرایه را به یک سطح تبدیل میکند. به طور پیشفرض، تنها یک سطح از آرایه را هموار میکند. اما با تعیین یک عدد به عنوان آرگومان، میتوانید تعداد بیشتری از سطوح را هموار کنید.
📜 مثال کد:
const multiDimensionalArray = [1, [2, 3], [4, [5, 6]]];در این مثال، ما یک آرایه چند بعدی داریم و با استفاده از متد `()flat`، آن را به یک آرایه تک بعدی تبدیل میکنیم.
const flattenedArray = multiDimensionalArray.flat();
console.log(flattenedArray); // Output: [1, 2, 3, 4, [5, 6]]
const deeperFlattenedArray = multiDimensionalArray.flat(2);در این مثال، با تعیین عمق 2، هر دو سطح از آرایه هموار شدهاند.
console.log(deeperFlattenedArray);
// Output: [1, 2, 3, 4, 5, 6]
✨برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
🔥3
Forwarded from کانال آموزشی لاراول (PapiDon)
🔹 معرفی متد
در فریمورک لاراول، متد
⚙️ نحوه کار با
1️⃣ ابتدا یک کالکشن میسازیم:
2️⃣ سپس متد
3️⃣ در نهایت، ما یک آرایه جدید خواهیم داشت که در آن کلیدها نام بخشها و مقادیر نام کارمندان است:
📌 @PapiDon_state
mapWithKeys در لاراول 🔹در فریمورک لاراول، متد
mapWithKeys یکی از متدهای کاربردی کالکشن است که به ما این امکان را میدهد تا یک کالکشن یا آرایه را بگیریم و برای هر عنصر آن، یک کلید و مقدار جدید تعیین کنیم. این متد ویژه زمانی مفید است که میخواهیم دادهها را به نحوی خاص سازماندهی کنیم.⚙️ نحوه کار با
mapWithKeys1️⃣ ابتدا یک کالکشن میسازیم:
use Illuminate\Support\Collection;
$collection = new Collection([
['name' => 'John', 'department' => 'Sales'],
['name' => 'Jane', 'department' => 'Finance']
]);
2️⃣ سپس متد
mapWithKeys را فراخوانی کرده و یک تابع میدهیم که به ازای هر عنصر در کالکشن، یک آرایه از کلید/مقدار جدید برمیگرداند:$grouped = $collection->mapWithKeys(function ($item, $key) {
return [$item['department'] => $item['name']];
});3️⃣ در نهایت، ما یک آرایه جدید خواهیم داشت که در آن کلیدها نام بخشها و مقادیر نام کارمندان است:
// $grouped will be:
// [
// 'Sales' => 'John',
// 'Finance' => 'Jane'
// ]
📌 @PapiDon_state
👍2❤1
سلام دوستان عزیز
اگر لطفا ما رو حمایت کنید ممنون میشیم
اینطوری میتونیم ما هم استوری بگذاریم 😊🙏❤️
https://t.me/phpandmysql?boost
اگر لطفا ما رو حمایت کنید ممنون میشیم
اینطوری میتونیم ما هم استوری بگذاریم 😊🙏❤️
https://t.me/phpandmysql?boost
Telegram
PHP & MYSQL
از این کانال حمایت کنید تا بتواند به قابلیتهای اضافی دسترسی پیدا کند.
👍1
PHP & MYSQL pinned «سلام دوستان عزیز اگر لطفا ما رو حمایت کنید ممنون میشیم اینطوری میتونیم ما هم استوری بگذاریم 😊🙏❤️ https://t.me/phpandmysql?boost»
Forwarded from کانال آموزشی لاراول (PapiDon)
📘آشنایی با Notion: ابزاری جامع برای مدیریت اطلاعات و پروژهها
🔹 آیا تا به حال با مشکل سازماندهی اطلاعات و پروژههای خود روبرو شدهاید؟ Notion پاسخی کارآمد برای شما دارد!
🔸 یک پلتفرم یکپارچه است که به شما این امکان را میدهد تا:
📝 یادداشتهایتان را به راحتی بنویسید و مدیریت کنید.
🗂 وظایف و پروژههای خود را سازماندهی و پیگیری کنید.
📂 اسناد و فایلهای مختلف را در یک مکان مرکزی ذخیره کنید.
🤝 با تیمتان به صورت آنلاین همکاری کنید و اطلاعات را به اشتراک بگذارید.
🔹 قابلیتهای متنوع Notion شامل:
- ایجاد جداول و دیتابیسها 📊
- طراحی برد برای مدیریت وظایف 📋
- سفارشیسازی صفحات بر اساس نیازهای شما 🎨
- ادغام آسان با ابزارهای دیگر مانند Google Calendar, Slack و غیره 🔄
🔸 با Notion، همه چیز در یک مکان واحد و به خوبی سازماندهی شده است. پس از آن برای بهبود بهرهوری خود و تیمتان استفاده کنید!
🔗 برای آغاز کار با Notion به
https://www.notion.so/
مراجعه کنید و اکانت رایگان خود را ایجاد کنید!
📌 @PapiDon_state
🔹 آیا تا به حال با مشکل سازماندهی اطلاعات و پروژههای خود روبرو شدهاید؟ Notion پاسخی کارآمد برای شما دارد!
🔸 یک پلتفرم یکپارچه است که به شما این امکان را میدهد تا:
📝 یادداشتهایتان را به راحتی بنویسید و مدیریت کنید.
🗂 وظایف و پروژههای خود را سازماندهی و پیگیری کنید.
📂 اسناد و فایلهای مختلف را در یک مکان مرکزی ذخیره کنید.
🤝 با تیمتان به صورت آنلاین همکاری کنید و اطلاعات را به اشتراک بگذارید.
🔹 قابلیتهای متنوع Notion شامل:
- ایجاد جداول و دیتابیسها 📊
- طراحی برد برای مدیریت وظایف 📋
- سفارشیسازی صفحات بر اساس نیازهای شما 🎨
- ادغام آسان با ابزارهای دیگر مانند Google Calendar, Slack و غیره 🔄
🔸 با Notion، همه چیز در یک مکان واحد و به خوبی سازماندهی شده است. پس از آن برای بهبود بهرهوری خود و تیمتان استفاده کنید!
🔗 برای آغاز کار با Notion به
https://www.notion.so/
مراجعه کنید و اکانت رایگان خود را ایجاد کنید!
📌 @PapiDon_state
👍2❤1
Forwarded from کانال آموزشی لاراول (PapiDon)
🔹آمادهسازی دادهها قبل از اعتبارسنجی با
🔸 چیستی
🔸 چگونگی کار
در اینجا، ما از متد
🔸 مزایای استفاده از
- تمیزی کد: جلوگیری از تکرار کد و حفظ DRY (Don't Repeat Yourself) در کدهای شما.
- صرفهجویی در زمان: کمتر نیاز به بررسی و ویرایش فرمهای ورودی در سمت کلاینت.
🔹 جمعبندی
استفاده از
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
prepareForValidation
در لاراول، ما همیشه به دنبال تمیز و منظم کردن کدهایمان هستیم و میخواهیم اطمینان حاصل کنیم که دادههایی که کاربران ارسال میکنند، معتبر و آماده پردازش هستند. یکی از تکنیکهای کاربردی برای این کار استفاده از متد prepareForValidation در کلاسهای درخواست سفارشی (FormRequest) است.🔸 چیستی
prepareForValidation
قبل از اینکه اعتبارسنجی فرم شروع شود، لاراول به شما فرصت میدهد که دادههای درخواست را تحت عنوان prepareForValidation تغییر دهید. این به شما اجازه میدهد که هر گونه تغییر یا پیشپردازش لازم روی دادهها انجام دهید.🔸 چگونگی کار
prepareForValidation
فرض کنید میخواهید هر درخواست برای ایجاد "موجودیت" جدید در سیستم شما حتما شامل user_id کاربری باشد که در حال ارسال درخواست است. به جای اینکه user_id را در هر فرم ورودی به صورت دستی اضافه کنید، میتوانید این کار را در سمت سرور و در متد prepareForValidation انجام دهید. نگاهی به کد زیر بیندازید:protected function prepareForValidation()🔸 توضیح کد
{
$this->merge([
'user_id' => $this->user()->id
]);
}
در اینجا، ما از متد
merge برای اضافه کردن user_id به دادههای درخواست استفاده میکنیم. ()this->user$ به ما اطلاعات کاربری که در حال حاضر وارد شده است را میدهد و id آن، شناسه کاربر است. با این روش، user_id به صورت خودکار به درخواست اضافه میشود و نیازی نیست که کاربر آن را وارد کند.🔸 مزایای استفاده از
prepareForValidation
- امنیت: از وارد کردن دادههای نامعتبر یا دستکاریشده توسط کاربر جلوگیری میکند.- تمیزی کد: جلوگیری از تکرار کد و حفظ DRY (Don't Repeat Yourself) در کدهای شما.
- صرفهجویی در زمان: کمتر نیاز به بررسی و ویرایش فرمهای ورودی در سمت کلاینت.
🔹 جمعبندی
استفاده از
prepareForValidation در لاراول یک رویکرد استاندارد و تمیز برای اطمینان از این است که دادههای شما پیش از رسیدن به مرحله اعتبارسنجی و پردازش، به شکل مناسبی آماده شدهاند. این تکنیک، بخش مهمی از نوشتن کدهای مطمئن و امن در لاراول است.✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
❤3
PHP & MYSQL pinned «🔹آمادهسازی دادهها قبل از اعتبارسنجی با prepareForValidation در لاراول، ما همیشه به دنبال تمیز و منظم کردن کدهایمان هستیم و میخواهیم اطمینان حاصل کنیم که دادههایی که کاربران ارسال میکنند، معتبر و آماده پردازش هستند. یکی از تکنیکهای کاربردی برای این کار…»
Forwarded from کانال آموزشی لاراول (PapiDon)
🔍 همه ما برنامهنویسها میدونیم که کار با آرایهها جزء جداییناپذیر کدنویسیه، اما گاهی اوقات با پیچیدگیهاش درگیر میشیم! 🤯 خوشبختانه لاراول یک جعبه ابزار داره که کار با آرایهها رو لذتبخش میکنه.
یکی از این ابزارها، کلاس
🛠 مثلاً، با استفاده از
اینجوری فقط با یک خط کد، شمارههای موبایل رو جدا کردیم و دیگه نیازی به حلقه زدن دستی نداریم!
💡 پس اگه میخوای کدنویسی رو برای خودت راحتتر کنی، حتما از
برای کدهای تمیزتر و سریعتر، فراموش نکن
اگه ازش استفاده کردی یا اگر این مطلب واست مفید بود یه لایک بزن 😌
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
یکی از این ابزارها، کلاس
Arr است که مثل یک ابزار قدرتمند برای کار با آرایهها عمل میکنه! ✨🛠 مثلاً، با استفاده از
Arr::pluck میتونیم راحت از یک لیست بزرگ داده، فقط شمارههای موبایل رو استخراج کنیم. فرض کنید ما یک آرایه از کاربران داریم و هر کاربر دارای اطلاعاتی مثل نام، ایمیل و شماره موبایل هست:
$users = [
['name' => 'علی', 'email' => 'ali@example.com', 'mobile' => '09123456789'],
['name' => 'زهرا', 'email' => 'zahra@example.com', 'mobile' => '09123456788'],
// و دیگر کاربران...
];
$mobiles = Arr::pluck($users, 'mobile');
// نتیجه: ['09123456789', '09123456788', ...]
اینجوری فقط با یک خط کد، شمارههای موبایل رو جدا کردیم و دیگه نیازی به حلقه زدن دستی نداریم!
💡 پس اگه میخوای کدنویسی رو برای خودت راحتتر کنی، حتما از
Arr در پروژههات استفاده کن.برای کدهای تمیزتر و سریعتر، فراموش نکن
Illuminate\Support\Arr رو در بالای فایلت اضافه کنی. 😉اگه ازش استفاده کردی یا اگر این مطلب واست مفید بود یه لایک بزن 😌
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
❤4👍1
PHP & MYSQL pinned «🔍 همه ما برنامهنویسها میدونیم که کار با آرایهها جزء جداییناپذیر کدنویسیه، اما گاهی اوقات با پیچیدگیهاش درگیر میشیم! 🤯 خوشبختانه لاراول یک جعبه ابزار داره که کار با آرایهها رو لذتبخش میکنه. یکی از این ابزارها، کلاس Arr است که مثل یک ابزار قدرتمند…»
Forwarded from کانال آموزشی لاراول (PapiDon)
خبر جدید برای دوستداران Laravel 🧐
📢 تیلور اتول، بنیانگذار Laravel، اخیراً از محصول جدیدی به نام "Laravel Pulse" رونمایی کرده است. این ابزار جدید، که قرار است به صورت رایگان و منبع باز عرضه شود، شایعاتی را در مورد اینکه ممکن است یک سیستم بررسی سلامت برای برنامههای Laravel باشد، مورد توجه قرار گرفته. انتظار میرود این محصول به زودی در کنفرانس Laracon AU به طور کامل معرفی و نمایش داده شود.
✨ ما منتظریم تا ببینیم Laravel Pulse چه قابلیتهای تازهای را برای توسعهدهندگان فراهم میآورد و چگونه میتواند به بهبود و نگهداری اپلیکیشنهای ما کمک کند.
🔔 با ما همراه باشید برای آخرین اخبار و بهروزرسانیهای Laravel Pulse. 😉
📌 @PapiDon_state
📢 تیلور اتول، بنیانگذار Laravel، اخیراً از محصول جدیدی به نام "Laravel Pulse" رونمایی کرده است. این ابزار جدید، که قرار است به صورت رایگان و منبع باز عرضه شود، شایعاتی را در مورد اینکه ممکن است یک سیستم بررسی سلامت برای برنامههای Laravel باشد، مورد توجه قرار گرفته. انتظار میرود این محصول به زودی در کنفرانس Laracon AU به طور کامل معرفی و نمایش داده شود.
✨ ما منتظریم تا ببینیم Laravel Pulse چه قابلیتهای تازهای را برای توسعهدهندگان فراهم میآورد و چگونه میتواند به بهبود و نگهداری اپلیکیشنهای ما کمک کند.
🔔 با ما همراه باشید برای آخرین اخبار و بهروزرسانیهای Laravel Pulse. 😉
📌 @PapiDon_state
👏4❤1👍1
Forwarded from کانال آموزشی لاراول (PapiDon)
🔐 What is Base64 ?
🌀 یک تکنیک رمزنگاری است که دادههای دیجیتال مثل تصاویر یا فایلها را به یک رشته متنی تبدیل میکند که میتوان در متنها و ایمیلها به راحتی استفاده کرد. این رشته از حروف الفبا (A-Z, a-z), اعداد (0-9) و نمادهای (+/) تشکیل شده و گاهی با کاراکتر (=) برای پر کردن فضاهای خالی در پایان استفاده میشود.
🛠 در لاراول چطور؟
🔗 API & Base64
در نوشتن API، Base64 به خصوص برای ارسال دادههای فایل مثل تصاویر یا اسناد PDF کاربردی است. به جای ارسال فایلهای خام، آنها را به Base64 تبدیل میکنید و از طریق JSON یا XML میفرستید. این روش امنیت و سازگاری دادهها را در انتقال اطمینان میبخشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
🌀 یک تکنیک رمزنگاری است که دادههای دیجیتال مثل تصاویر یا فایلها را به یک رشته متنی تبدیل میکند که میتوان در متنها و ایمیلها به راحتی استفاده کرد. این رشته از حروف الفبا (A-Z, a-z), اعداد (0-9) و نمادهای (+/) تشکیل شده و گاهی با کاراکتر (=) برای پر کردن فضاهای خالی در پایان استفاده میشود.
🛠 در لاراول چطور؟
$encoded = base64_encode('متن مورد نظر'); // رمزنگاری
$decoded = base64_decode($encoded); // رمزگشایی🔗 API & Base64
در نوشتن API، Base64 به خصوص برای ارسال دادههای فایل مثل تصاویر یا اسناد PDF کاربردی است. به جای ارسال فایلهای خام، آنها را به Base64 تبدیل میکنید و از طریق JSON یا XML میفرستید. این روش امنیت و سازگاری دادهها را در انتقال اطمینان میبخشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
👏2❤1
Forwarded from کانال آموزشی لاراول (PapiDon)
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
📌 @PapiDon_state
🔥2❤1
Forwarded from کانال آموزشی لاراول (PapiDon)
🔥 نکته فنی امروز، استفاده از Enums در لاراول
👨💻 آیا تا به حال با
🌟 what is Enum ?
یک نوع داده است که به شما اجازه میدهد مجموعهای محدود از مقادیر معتبر را برای یک متغیر تعریف کنید. این بدان معنی است که متغیر شما فقط میتواند یکی از مقادیر تعریف شده در Enum را داشته باشد، که این به افزایش خوانایی و امنیت کد شما کمک میکند.
🔍 فرض کنید میخواهید نوع سوالات در یک برنامه آزمون را مدیریت کنید. میتوانید یک Enum به نام
✅ کاربرد در اعتبارسنجی:
حالا میتوانید از این Enum در اعتبارسنجی دادهها استفاده کنید. به این ترتیب، تضمین میشود که فقط مقادیر مجاز انتخاب شوند:
🔄 یک روش دیگر:
همچنین میتوانید از روش Rule::in برای تعیین مقادیر مجاز استفاده کنید:
🔹این روش به شما اجازه میدهد به طور مستقیم مقادیر معتبر را از Enum تعیین کنید، که برای مواقعی که میخواهید برخی از مقادیر Enum را حذف کنید یا مقادیر اضافی را وارد کنید، مفید است.
و همچنین امکان مدیریت دقیقتر مقادیر مجاز را فراهم میکند.
🛠 مزایا:
- ✨ تعریف واضح: Enumها تعریف واضحی از مقادیر مجاز ارائه میدهند.
- 🛡 امنیت بیشتر: کاهش خطای انسانی و جلوگیری از ارسال دادههای نامعتبر.
- 📖 خوانایی بهتر: کد شما خواناتر و قابل فهمتر میشود.
📌 نکته پایانی:
استفاده از Enums در لاراول یک روش عالی برای مدیریت مقادیر ثابت و تضمین اعتبار دادهها در برنامههای PHP است. حتماً در پروژههای بعدی خود از آنها استفاده کنید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
👨💻 آیا تا به حال با
Enum در لاراول کار کردهاید؟ Enumها (یا انومریشنها)، از قابلیتهای جدید و پرکاربرد در PHP 8.1 به بعد هستند که در لاراول نیز پشتیبانی میشوند. 🌟 what is Enum ?
یک نوع داده است که به شما اجازه میدهد مجموعهای محدود از مقادیر معتبر را برای یک متغیر تعریف کنید. این بدان معنی است که متغیر شما فقط میتواند یکی از مقادیر تعریف شده در Enum را داشته باشد، که این به افزایش خوانایی و امنیت کد شما کمک میکند.
🔍 فرض کنید میخواهید نوع سوالات در یک برنامه آزمون را مدیریت کنید. میتوانید یک Enum به نام
QuestionTypeEnum ایجاد کنید:namespace App\Enums;
enum QuestionTypeEnum: string
{
case Text = 'text';
case Textarea = 'textarea';
case Select = 'select';
case Radio = 'radio';
case Checkbox = 'checkbox';
}
✅ کاربرد در اعتبارسنجی:
حالا میتوانید از این Enum در اعتبارسنجی دادهها استفاده کنید. به این ترتیب، تضمین میشود که فقط مقادیر مجاز انتخاب شوند:
$validator = Validator::make($data, [
'type' => ['required', new Enum(QuestionTypeEnum::class)],
// سایر قوانین اعتبارسنجی...
]);
🔄 یک روش دیگر:
همچنین میتوانید از روش Rule::in برای تعیین مقادیر مجاز استفاده کنید:
$validator = Validator::make($data, [
'type' => ['required', Rule::in(
QuestionTypeEnum::Text->value,
QuestionTypeEnum::Textarea->value,
QuestionTypeEnum::Select->value,
QuestionTypeEnum::Radio->value,
QuestionTypeEnum::Checkbox->value
)],
// سایر قوانین اعتبارسنجی...
]);
🔹این روش به شما اجازه میدهد به طور مستقیم مقادیر معتبر را از Enum تعیین کنید، که برای مواقعی که میخواهید برخی از مقادیر Enum را حذف کنید یا مقادیر اضافی را وارد کنید، مفید است.
و همچنین امکان مدیریت دقیقتر مقادیر مجاز را فراهم میکند.
🛠 مزایا:
- ✨ تعریف واضح: Enumها تعریف واضحی از مقادیر مجاز ارائه میدهند.
- 🛡 امنیت بیشتر: کاهش خطای انسانی و جلوگیری از ارسال دادههای نامعتبر.
- 📖 خوانایی بهتر: کد شما خواناتر و قابل فهمتر میشود.
📌 نکته پایانی:
استفاده از Enums در لاراول یک روش عالی برای مدیریت مقادیر ثابت و تضمین اعتبار دادهها در برنامههای PHP است. حتماً در پروژههای بعدی خود از آنها استفاده کنید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
❤3
PHP & MYSQL pinned «🔥 نکته فنی امروز، استفاده از Enums در لاراول 👨💻 آیا تا به حال با Enum در لاراول کار کردهاید؟ Enumها (یا انومریشنها)، از قابلیتهای جدید و پرکاربرد در PHP 8.1 به بعد هستند که در لاراول نیز پشتیبانی میشوند. 🌟 what is Enum ? یک نوع داده است که به شما…»
Forwarded from کانال آموزشی لاراول (PapiDon)
🌟 تعریف ساده Job و Queue در لاراول
🧐 چیستی Job ؟
فرض کنید شما میخواهید یک کیک درست کنید. تهیه کیک شامل چندین مرحله است: مخلوط کردن مواد، گذاشتن آن در فر، و در نهایت تزئین کیک. در دنیای برنامهنویسی، هر یک از این مراحل میتواند یک "Job" باشد. در لاراول، یک Job یعنی یک وظیفه یا کار خاصی که شما میخواهید برنامهتان انجام دهد. مثلاً، ارسال ایمیل به کاربران یک Job است.
🧐 چیستی Queue یا صف ؟
حالا فرض کنید شما نه تنها یک کیک، بلکه ۱۰۰ کیک باید درست کنید! اگر همه این کارها را به طور همزمان انجام دهید، آشپزخانه شما به هم ریخته و کارها نیمهتمام میماند. برای حل این مشکل، شما کارها را در یک "صف" قرار میدهید. یعنی هر کیک را به ترتیب وارد فر میکنید و پس از پختن یک کیک، کیک بعدی را میپزید. در لاراول، Queue همان صف است که کارها یا Jobs را به ترتیب و به نوبت انجام میدهد. این کار باعث میشود تا برنامه شما کارآمدتر و سریعتر کار کند و منابع سرور بهتر مدیریت شوند.
🔍 چرا از Job و Queue استفاده میکنیم؟
تصور کنید کاربری در وبسایت شما ثبتنام میکند و شما میخواهید بلافاصله یک ایمیل خوشآمدگویی برای او ارسال کنید. اگر این کار را بدون استفاده از Job و Queue انجام دهید، کاربر باید منتظر بماند تا ایمیل ارسال شود و این ممکن است چند ثانیه یا حتی دقایق طول بکشد. اما اگر ارسال ایمیل را به عنوان یک Job در نظر بگیریم و آن را در یک Queue قرار دهیم، ایمیل در پسزمینه و بدون تأخیر به کاربر ارسال میشود.
🎯 کاربردهای دیگر Job و Queue
از Job و Queue در لاراول میتوان برای انواع فعالیتهای پسزمینه استفاده کرد: ارسال اعلانها، بهروزرسانی دیتابیس، پردازش فایلهای بزرگ، و خیلی کارهای دیگر که نیاز به زمان و منابع زیادی دارند.
💡 تفاوت بین Job و Queue چیست؟
در لاراول، Job یک وظیفه یا کار خاصی است که شما میخواهید انجام دهید، مثل ارسال ایمیل یا پردازش یک تصویر. Queue اما، مکانیزمی است که این Jobsها را مدیریت میکند. Queue به شما اجازه میدهد تا Jobsها را در یک صف قرار دهید و به ترتیب انجام دهید.
🛠 چه زمانی از Job استفاده کنیم؟
🔸وظایف مستقل: وقتی شما یک کار خاص دارید که میخواهید انجام دهید و به ترتیب خاصی وابسته نیست.
🔸کارهایی با منابع محدود: مثلا، اگر میخواهید یک تصویر را فوراً پردازش کنید و نیاز به انجام فوری دارید.
🔸کارهای سریع: اگر کاری سریع و بدون نیاز به انتظار است
⚙️ چه زمانی از Queue استفاده کنیم؟
🔹کارهایی با زمانبری بالا: وقتی کاری زمان زیادی میبرد و نمیخواهید کاربران منتظر بمانند، مثل ارسال ایمیلهای انبوه.
🔹وظایفی که نیاز به انجام به ترتیب دارند: مانند زمانی که میخواهید چندین کار را پشت سر هم انجام دهید.
🔹حفظ کارایی سیستم: برای جلوگیری از فشار بیش از حد به سرور در زمانهای پیک کاری
🔔 نکات مهم
- هماهنگی Job و Queue: اغلب، شما Jobs را درون Queue قرار میدهید تا به ترتیب انجام شوند. پس، Job وظیفه خاصی است که باید انجام شود، و Queue نحوه انجام آن وظیفه را مدیریت میکند.
- کارایی و تجربه کاربری: استفاده از Queue میتواند کارایی سیستم را بهبود بخشد و تجربه کاربری را با کاهش زمان انتظار افزایش دهد.
🚦 نتیجهگیری
در نهایت، تصمیمگیری برای استفاده از Job یا Queue بستگی به نیازهای خاص پروژه و شرایط کاری شما دارد. انتخاب درست بین این دو میتواند تأثیر زیادی بر روی بهرهوری و کارایی برنامه شما داشته باشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🧐 چیستی Job ؟
فرض کنید شما میخواهید یک کیک درست کنید. تهیه کیک شامل چندین مرحله است: مخلوط کردن مواد، گذاشتن آن در فر، و در نهایت تزئین کیک. در دنیای برنامهنویسی، هر یک از این مراحل میتواند یک "Job" باشد. در لاراول، یک Job یعنی یک وظیفه یا کار خاصی که شما میخواهید برنامهتان انجام دهد. مثلاً، ارسال ایمیل به کاربران یک Job است.
🧐 چیستی Queue یا صف ؟
حالا فرض کنید شما نه تنها یک کیک، بلکه ۱۰۰ کیک باید درست کنید! اگر همه این کارها را به طور همزمان انجام دهید، آشپزخانه شما به هم ریخته و کارها نیمهتمام میماند. برای حل این مشکل، شما کارها را در یک "صف" قرار میدهید. یعنی هر کیک را به ترتیب وارد فر میکنید و پس از پختن یک کیک، کیک بعدی را میپزید. در لاراول، Queue همان صف است که کارها یا Jobs را به ترتیب و به نوبت انجام میدهد. این کار باعث میشود تا برنامه شما کارآمدتر و سریعتر کار کند و منابع سرور بهتر مدیریت شوند.
🔍 چرا از Job و Queue استفاده میکنیم؟
تصور کنید کاربری در وبسایت شما ثبتنام میکند و شما میخواهید بلافاصله یک ایمیل خوشآمدگویی برای او ارسال کنید. اگر این کار را بدون استفاده از Job و Queue انجام دهید، کاربر باید منتظر بماند تا ایمیل ارسال شود و این ممکن است چند ثانیه یا حتی دقایق طول بکشد. اما اگر ارسال ایمیل را به عنوان یک Job در نظر بگیریم و آن را در یک Queue قرار دهیم، ایمیل در پسزمینه و بدون تأخیر به کاربر ارسال میشود.
🎯 کاربردهای دیگر Job و Queue
از Job و Queue در لاراول میتوان برای انواع فعالیتهای پسزمینه استفاده کرد: ارسال اعلانها، بهروزرسانی دیتابیس، پردازش فایلهای بزرگ، و خیلی کارهای دیگر که نیاز به زمان و منابع زیادی دارند.
💡 تفاوت بین Job و Queue چیست؟
در لاراول، Job یک وظیفه یا کار خاصی است که شما میخواهید انجام دهید، مثل ارسال ایمیل یا پردازش یک تصویر. Queue اما، مکانیزمی است که این Jobsها را مدیریت میکند. Queue به شما اجازه میدهد تا Jobsها را در یک صف قرار دهید و به ترتیب انجام دهید.
🛠 چه زمانی از Job استفاده کنیم؟
🔸وظایف مستقل: وقتی شما یک کار خاص دارید که میخواهید انجام دهید و به ترتیب خاصی وابسته نیست.
🔸کارهایی با منابع محدود: مثلا، اگر میخواهید یک تصویر را فوراً پردازش کنید و نیاز به انجام فوری دارید.
🔸کارهای سریع: اگر کاری سریع و بدون نیاز به انتظار است
⚙️ چه زمانی از Queue استفاده کنیم؟
🔹کارهایی با زمانبری بالا: وقتی کاری زمان زیادی میبرد و نمیخواهید کاربران منتظر بمانند، مثل ارسال ایمیلهای انبوه.
🔹وظایفی که نیاز به انجام به ترتیب دارند: مانند زمانی که میخواهید چندین کار را پشت سر هم انجام دهید.
🔹حفظ کارایی سیستم: برای جلوگیری از فشار بیش از حد به سرور در زمانهای پیک کاری
🔔 نکات مهم
- هماهنگی Job و Queue: اغلب، شما Jobs را درون Queue قرار میدهید تا به ترتیب انجام شوند. پس، Job وظیفه خاصی است که باید انجام شود، و Queue نحوه انجام آن وظیفه را مدیریت میکند.
- کارایی و تجربه کاربری: استفاده از Queue میتواند کارایی سیستم را بهبود بخشد و تجربه کاربری را با کاهش زمان انتظار افزایش دهد.
🚦 نتیجهگیری
در نهایت، تصمیمگیری برای استفاده از Job یا Queue بستگی به نیازهای خاص پروژه و شرایط کاری شما دارد. انتخاب درست بین این دو میتواند تأثیر زیادی بر روی بهرهوری و کارایی برنامه شما داشته باشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
👍3❤2