کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
🔐 What is Base64 ?

🌀 یک تکنیک رمزنگاری است که داده‌های دیجیتال مثل تصاویر یا فایل‌ها را به یک رشته متنی تبدیل می‌کند که می‌توان در متن‌ها و ایمیل‌ها به راحتی استفاده کرد. این رشته از حروف الفبا (A-Z, a-z), اعداد (0-9) و نمادهای (+/) تشکیل شده و گاهی با کاراکتر (=) برای پر کردن فضاهای خالی در پایان استفاده می‌شود.

🛠 در لاراول چطور؟

$encoded = base64_encode('متن مورد نظر'); // رمزنگاری
$decoded = base64_decode($encoded); // رمزگشایی


🔗 API & Base64

در نوشتن API، Base64 به خصوص برای ارسال داده‌های فایل مثل تصاویر یا اسناد PDF کاربردی است. به جای ارسال فایل‌های خام، آن‌ها را به Base64 تبدیل می‌کنید و از طریق JSON یا XML می‌فرستید. این روش امنیت و سازگاری داده‌ها را در انتقال اطمینان می‌بخشد.


به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
👍151👏1
3
کانال آموزشی لاراول
Photo
🌐 آیا آشنایی با قدرت htmx در لاراول دارید؟

⚙️ htmx
یک ابزار نوآورانه در دنیای توسعه وب است که به شما اجازه می‌دهد تا رابط‌های کاربری پیشرفته و دینامیک را با استفاده از HTML معمولی بسازید - بدون نیاز به JavaScript!

اصلی‌ترین هدف استفاده از htmx چیست؟

- ساده‌سازی: با htmx، امکان استفاده از AJAX، تغییرات CSS، WebSockets و Server Sent Events فراهم می‌شود، و همه این‌ها فقط با اضافه کردن خصوصیات (attributes) به کد HTML!

- کارآمدی: htmx به کاهش وابستگی به جاوااسکریپت کمک می‌کند و پروژه‌های وب را سبک‌تر می‌سازد.

🛠 چرا لاراول چنین گزینه‌ای را معرفی کرده؟

- انعطاف‌پذیری: لاراول همیشه به دنبال ارائه راه‌حل‌هایی برای تسهیل توسعه وب است و htmx همان ابزاری است که توسعه‌دهندگان می‌توانند برای افزایش سرعت و بهبود تجربه کاربری از آن بهره ببرند.

- تطابق‌پذیری: htmx به راحتی با معماری MVC لاراول تطابق پیدا می‌کند و توسعه‌دهندگان می‌توانند همزمان از مزایای Blade و htmx استفاده کنند.

🎨 در عمل چگونه کار می‌کند htmx ؟
- به روزرسانی مستقیم بخش‌هایی از صفحه بدون نیاز به بارگیری کامل صفحه.
- افزایش سرعت و پاسخگویی برنامه‌های تک صفحه‌ای (SPA).



به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
👍8🔥31
🚀 Laravel htmx !

🧑‍💻 این کتابخانه، اثر Maurizio Bonani، امکان دسترسی به قابلیت‌های مرورگر مدرن را مستقیماً از طریق HTML فراهم می‌کند. دیگر نیازی به استفاده از جاوااسکریپت نیست!

ویژگی‌های برجسته :

- دسترسی به AJAX, CSS Transitions, WebSockets و Server Sent Events.
- سادگی و قدرت خلق رابط کاربری با استفاده از hypertext.
- حجم کم (~14KB gzipped), بدون وابستگی، قابل توسعه و سازگاری با IE11.
- کاهش 67% حجم کد در مقایسه با React.

🛠 ویژگی‌های کلیدی Laravel htmx:
- HtmxRequest:
کلاسی برای سهولت خواندن هدرهای درخواستی مخصوص htmx

- HtmxResponse:
پاسخ‌های متنوع همچون انجام ریدایرکت در سمت کلاینت و توقف عملیات پولینگ

🎨 رندر قطعات Blade با Htmx:

- امکان تعریف و رندر کردن بخش‌هایی از قالب‌ها.
- دستورات Blade جدید: fragment@ و endfragment@.

🔄 پشتیبانی OOB Swap:

- به‌روزرسانی چندین هدف با بازگشت پاسخ‌های جزئی.

📚 برای کسب اطلاعات بیشتر و مشاهده کدهای نمونه، به readme پکیج مراجعه کنید!

⚡️ با Laravel htmx، پروژه‌های وب خود را به سطحی نوین ارتقا دهید و از نوآوری‌های فناوری بهره‌مند شوید!


🔗 لینک پکیج
https://github.com/mauricius/laravel-htmx



به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
👍8🤩21
به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
7👍5
🌐 معرفی Laravel Pulse: ابزار نوین مانیتورینگ برای Laravel

لاراول پالس، ابزاری نوآورانه و کاربردی است که به تازگی برای بهبود و نظارت دقیق بر برنامه‌های Laravel طراحی شده است. با این ابزار، شما می‌توانید عملکرد برنامه خود را تحت نظر گرفته و بهینه‌سازی‌های لازم را انجام دهید.

🔍 Application Insights:
شناسایی کندترین Jobs و Endpoints.

💻 Server Monitoring:
نظارت بر CPU، Memory و Disk Usage.

🔃 Queue Monitoring:
مشاهده داده‌های Real-Time صف‌ها.

📊 Performance Analysis:
تحلیل عملکرد کلی برنامه.

🐞 Trending Exceptions:
رصد Exceptions و خطاها.

Customization:
سفارشی‌سازی Dashboard.


🔸قرار است Laravel Pulse هفته‌ی آینده به صورت رسمی رونمایی شود.

🔗 کسب اطلاعات بیشتر:
https://pulse.laravel.com/


به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
🔥13👍81
کانال آموزشی لاراول
Photo
🔥 نکته فنی امروز، استفاده از Enums در لاراول

👨‍💻 آیا تا به حال با 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 را حذف کنید یا مقادیر اضافی را وارد کنید، مفید است.
و همچنین امکان مدیریت دقیق‌تر مقادیر مجاز را فراهم می‌کند.

🔸با استفاده از کلاس Rule در لاراول و متد in برای ایجاد یک لیست محدود از مقادیر مجاز انجام می‌شود. در اینجا، شما مقادیر مجاز را از Enum QuestionTypeEnum استخراج کرده و به عنوان پارامترهای متد in قرار می‌دهید.


🛠 مزایا:

- تعریف واضح: Enum‌ها تعریف واضحی از مقادیر مجاز ارائه می‌دهند.

- 🛡 امنیت بیشتر: کاهش خطای انسانی و جلوگیری از ارسال داده‌های نامعتبر.

- 📖 خوانایی بهتر: کد شما خوانا‌تر و قابل فهم‌تر می‌شود.

📌 نکته پایانی:
استفاده از Enums در لاراول یک روش عالی برای مدیریت مقادیر ثابت و تضمین اعتبار داده‌ها در برنامه‌های PHP است. حتماً در پروژه‌های بعدی خود از آن‌ها استفاده کنید!



به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید!

📌 @PapiDon_state
👍10🔥92
🎉 در رویداد Laracon AU، Jess Archer از معرفی Laravel Pulse پرده برداشت. این ابزار جدید، به عنوان یک راه‌حل کارآمد برای نظارت بر عملکرد و به‌دست آوردن بینش‌هایی از برنامه‌های Laravel طراحی شده است.

🔸 چرا Laravel Pulse اهمیت دارد؟

قدرتی بی‌نظیر در زمینه رفع اشکال و ثبت فعالیت‌های برنامه Laravel دارد. از درخواست‌ها و کوئری‌ها گرفته تا کارها، رویدادها و صف‌ها، همه چیز توسط Pulse ثبت می‌شود. این قابلیت مانیتورینگ به شما کمک می‌کند تا گلوگاه‌های عملکردی (Performance Bottlenecks) را شناسایی و بهینه‌سازی کنید.

🧐 ویژگی‌های برجسته Laravel Pulse:

1️⃣ کنترل کامل داده‌ها: با ماهیت میزبانی شخصی (self-hosted nature) ، امنیت و انطباق با الزامات قانونی را تضمین می‌کند.

2️⃣ طراحی Responsive Design: داشبورد با طراحی واکنش‌گرا، مناسب برای انواع دستگاه‌ها از جمله موبایل.

3️⃣ انعطاف‌پذیری: ساخته شده با Livewire، به کاربران امکان سفارشی‌سازی کامل داشبورد را می‌دهد.

4️⃣ جمع‌آوری داده‌ها در زمان واقعی: با استفاده از رکوردرها، داده‌ها به صورت سیستماتیک جمع‌آوری و ذخیره می‌شوند.

🔹 ویژگی‌های کلیدی عملکردی:

- کاربری برنامه : شناسایی رفتار کاربران و کشف نقاط کند.
- آمار سرور : نظارت بر سلامتی سرورها.
- نظارت بر صف‌ها : ارائه آمار زمان واقعی و تاریخی.
- بررسی عملکرد : شناسایی و رفع مشکلات عملکردی.


🔗 مشاهده ویدیو معرفی در Laracon AU:

https://youtu.be/0byEYQzPUE4


💡در واقع Laravel Pulse یک ابزار متن‌باز برای جامعه توسعه‌دهندگان Laravel است که به آن‌ها امکان می‌دهد تا به صورت مشترک بر روی بهبود و نوآوری در این ابزار کار کنند.

👉 برای کسب اطلاعات بیشتر، به وب‌سایت رسمی مراجعه کنید.
https://pulse.laravel.com



به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید! ☕️

📌 @PapiDon_state
👍72
کانال آموزشی لاراول
Photo
🤩 لاراول یازده در راه است !

🚀 با نزدیک شدن به انتشار رسمی Laravel 11، هیجان در جامعه توسعه‌دهندگان Laravel رو به افزایش است. بیایید نگاهی به ویژگی‌های شگفت‌انگیز و تحولات قریب‌الوقوع در این نسخه بیندازیم: 🥹

🛠 تغییرات عمده در Laravel 11:

1️⃣ تغییر در ساختار دایرکتوری: در Laravel 11، دایرکتوری middleware دیگر وجود نخواهد داشت. تغییرات به شما امکان سفارشی‌سازی middleware را مستقیماً در App/ServiceProvider می‌دهد.

2️⃣ بهبود در سیستم پیکربندی: با رویکرد جدید پیکربندی پویا، Laravel 11 از تنظیمات پیکربندی سلسله مراتبی بهره می‌برد. فایل env. نیز گسترش یافته و تمامی تنظیمات مورد نیاز را در بر می‌گیرد.

3️⃣ تغییرات مربوط به مسیریابی (Routing): پیش‌فرض‌های جدید برای مسیریابی، شامل دو فایل route: console.php و web.php است. برای افزودن مسیرهای API، نیاز به اجرای دستور “php artisan install:api” است که فایل مسیرهای API و قابلیت‌های Laravel Sanctum را فراهم می‌کند.

4️⃣حذف Console Kernel: در Laravel 11، دیگر نیازی به کرنل کنسول (Console Kernel) نیست و می‌توان دستورات کنسول را مستقیماً در فایل routes/console.php تعریف کرد.

5️⃣نیازمندی به نسخه PHP :Laravel 11 نیازمند حداقل نسخه PHP 8.2 است.

🔥❗️ توجه داشته باشید که این ویژگی‌ها هنوز در مرحله بتا قرار دارند و ممکن است تغییرات و بهبودهای بیشتری داشته باشند. ما در این کانال به‌روزرسانی‌های جدید را پیگیری می‌کنیم و به شما اطلاع می‌دهیم. 😉

یه لایک هم بزن که انرژی بگیریم 😌🫶


به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید! ☕️

📌 @PapiDon_state
👍5417
😎 یه چالش بریم ببینیم چه خبر 🧐

📌 در لاراول، هنگام استفاده از Eloquent ORM برای ایجاد یک رابطه پلیمورفیک چند به چند، کدام متد برای تعریف رابطه در مدلی که می خواهد به چندین نوع مختلف مدل دیگر متصل شود، استفاده میشود؟
Anonymous Quiz
57%
استفاده از متد ()morphToMany در مدل مرکزی.
14%
استفاده از متد ()morphedByMany در مدل های دیگر که می خواهند به مدل مرکزی متصل شوند.
28%
استفاده از متد ()belongsToMany در هر دو سمت رابطه.
👌7🔥21
کانال آموزشی لاراول
Photo
آموزش روابط پلیمورفیک در لاراول

🔹رابطه پلیمورفیک چیست؟

در دنیای برنامه‌نویسی و به خصوص در برنامه‌نویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه می‌دهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که می‌توانید یک ساختار داده‌ای واحد داشته باشید که با انواع مختلف داده‌ها کار کند. مثال کلاسیک آن، مدل Comment است که می‌تواند به Post ،Video ، یا Photo متصل شود.

🔸 چگونه در لاراول رابطه پلیمورفیک ایجاد کنیم؟

برای ایجاد یک رابطه پلیمورفیک در لاراول، از Eloquent ORM استفاده می‌شود. Eloquent امکان تعریف روابط مختلف بین مدل‌ها را به شکلی ساده و خوانا فراهم می‌کند.

⬅️ تعریف رابطه پلیمورفیک چند به چند

برای مثال، فرض کنید می‌خواهید رابطه‌ای بین مدل Tag و مدل‌های Post و Video ایجاد کنید. در اینجا، Tag می‌تواند به هر دو مدل Post و Video متصل شود.

- استفاده از ()morphToMany: در مدل Tag، متد ()morphToMany را تعریف می‌کنیم. این متد به لاراول می‌گوید که Tag می‌تواند به چندین نوع مختلف از مدل‌ها متصل شود.


public function posts() {
return $this->morphToMany(Post::class, 'taggable');
}

public function videos() {
return $this->morphToMany(Video::class, 'taggable');
}



- استفاده از ()morphedByMany: در مدل‌های Post و Video، متد ()morphedByMany را تعریف می‌کنیم. این متد به لاراول می‌گوید که این مدل‌ها می‌توانند به مدل Tag متصل شوند.


// در مدل Post
public function tags() {
return $this->morphedByMany(Tag::class, 'taggable');
}

// در مدل Video
public function tags() {
return $this->morphedByMany(Tag::class, 'taggable');
}



رابطه به چالش کشیده شده:

در چالش اخیر، سوالی مطرح شد درباره نحوه تعریف رابطه پلیمورفیک چند به چند در لاراول:

پاسخ صحیح: استفاده از متد ()morphToMany در مدل مرکزی.

📝 توضیح پاسخ:

متد ()morphToMany در مدلی که می‌خواهد به چندین نوع مختلف از مدل‌های دیگر متصل شود (مانند مدل Tag که به Post و Video متصل می‌شود) استفاده می‌شود. این متد رابطه‌ای ایجاد می‌کند که به لاراول این اجازه را می‌دهد تا یک مدل با چندین مدل دیگر به صورت پلیمورفیک ارتباط برقرار کند.

❗️اشتباهات رایج:

- برخی ممکن است گزینه ()morphedByMany را انتخاب کرده باشند. این متد در مدل‌هایی استفاده می‌شود که به مدل مرکزی متصل می‌شوند، نه در مدل مرکزی.

- گزینه ()belongsToMany برای روابط پلیمورفیک مناسب نیست. این متد برای روابط استاندارد چند به چند بین دو مدل استفاده می‌شود.


⚙️ برای پیاده‌سازی یک رابطه پلیمورفیک چند به چند در لاراول، نیاز به ایجاد یک migration برای جدول واسط است که ارتباط بین مدل‌های مختلف را مدیریت می‌کند. در اینجا، مثالی از نحوه ساختار migration برای ایجاد چنین جدولی ارائه می‌دهم:

فرض کنید که می‌خواهیم رابطه‌ای بین مدل‌های Tag و Post و Video ایجاد کنیم. برای این منظور، باید یک جدول واسط به نام taggables ایجاد کنیم که شامل ستون‌های زیر باشد:

- tag_id: کلید خارجی به جدول tags
- taggable_id: شناسه (ID) مدل مرتبط (مثل Post یا Video)
- taggable_type: نوع مدل مرتبط (که نشان‌دهنده کلاس مدل مرتبط است)

ممکن است Migration به صورت زیر نوشته شود:

Schema::create('taggables', function (Blueprint $table) {
$table->unsignedBigInteger('tag_id');
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');

$table->unsignedBigInteger('taggable_id');
$table->string('taggable_type');

$table->unique(['tag_id', 'taggable_id', 'taggable_type']);
});


🔹 در این مثال، tag_id به جدول tags مرتبط می‌شود و taggable_id و taggable_type برای مشخص کردن ارتباط پلیمورفیک استفاده می‌شوند. همچنین، یک کلید منحصر به فرد برای جلوگیری از تکراری بودن رکوردها تعریف شده است.

این migration به شما امکان می‌دهد که یک ساختار پایگاه داده منعطف برای مدیریت روابط پلیمورفیک بین مدل‌های مختلف ایجاد کنید.


📌 نتیجه‌گیری:

درک صحیح از نحوه کار روابط پلیمورفیک در لاراول به شما کمک می‌کند تا بتوانید ساختارهای داده‌ای پیچیده‌تر و انعطاف‌پذیرتری را مدیریت کنید. امیدوارم این توضیحات به شما کمک کرده باشد تا درک بهتری از روابط پلیمورفیک داشته باشید و اشتباهات متداول را تشخیص دهید.


به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید! ☕️

📌 @PapiDon_state
🔥20👍3❤‍🔥22👏2
کانال آموزشی لاراول
آموزش روابط پلیمورفیک در لاراول 🔹رابطه پلیمورفیک چیست؟ در دنیای برنامه‌نویسی و به خصوص در برنامه‌نویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه می‌دهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که می‌توانید یک ساختار داده‌ای واحد داشته باشید…
📌نمی‌دونم نظرتون درباره این جور موضوعات چیه که در قالب یه چالش روز قبل سوالی مطرح بشه و بعد اگر لازم بود توضیحاتی روز بعدش داده بشه.

به اکشن های شما در محتوایی که سعی کردم در حد قابل درک مفهوم پلیمورفیک باشه توجه خواهم کرد 😊🫶
👌38👍42❤‍🔥1
کانال آموزشی لاراول
Photo
🌟 تعریف ساده 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
👍251👌1
کانال آموزشی لاراول
Photo
PHP 8.3 is released

🔥 آخرین به‌روزرسانی PHP 8.3:
ویژگی‌های نوین و تحولات چشمگیر

🔹تیم PHP دیروز - 23 دسامبر - نسخه 8.3 را با امکانات جدیدی چون Typed Class Constants، تابع ()json_validate و موارد دیگر منتشر کرد.


1️⃣ موضوع Typed Class Constants: در نسخه‌های پیشین PHP، امکان تعریف نوع برای constants وجود نداشت، اما در PHP 8.3، شما می‌توانید نوع داده‌ای که یک constant باید داشته باشد را مشخص کنید.

2️⃣ موضوع json_validate() function: این تابع جدید به شما امکان می‌دهد JSON را بدون نیاز به استفاده از flags یا توابع خطا بررسی کنید.

3️⃣ موضوع Dynamic class constant fetch: در PHP 8.3، شما می‌توانید به constants یک کلاس به صورت پویا دسترسی داشته باشید.

4️⃣ موضوع mb_str_pad() function: تابع جدید برای کار با رشته‌ها در PHP.

5️⃣ موضوع Fallback value syntax for INI ENV variables: این قابلیت به شما اجازه می‌دهد برای متغیرهای محیطی INI، مقادیر پیش‌فرض تعیین کنید.

6️⃣ موضوع Support linting multiple files at once: بهبود در ابزارهای تحلیل و بررسی کدهای PHP.

7️⃣ موضوع More Appropriate Date/Time Exceptions: استثناهای بهتر و دقیق‌تر در مدیریت تاریخ و زمان.

8️⃣ موضوع Deep-cloning of readonly properties: این ویژگی به شما اجازه می‌دهد که از خواص readonly به صورت عمیق کپی بگیرید.

9️⃣ موضوع Randomizer Additions: توابع جدید برای تولید رشته‌ها و کدهای تصادفی.

📘 برای آشنایی بیشتر با این ویژگی‌های جدید، صفحه اعلامیه نسخه 8.3.0 PHP را مشاهده کنید.

https://www.php.net/releases/8.3/en.php


🌐 منتظر اطلاعات بیشتر در مورد PHP 8.3 باشید!



به کانال ما بپیوندید تا بیشتر با لاراول و تکنیک‌های پیشرفته برنامه‌نویسی آشنا شوید! ☕️

📌 @PapiDon_state
👍95👌2🤩1
🌟 سلام رفقا و همراهان همیشگی 👋

امیدوارم حالتون خوب باشه حسابی ! 😊🙌

اول از همه، می‌خوام از ته دل بابت همراهی‌تون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال می‌کنید و با ما همراهید، واقعاً برامون باارزشه. 🫶

در پاسخ به نظرات و پیشنهادات شما که در نظرسنجی‌های گذشته ارائه دادید، تصمیم گرفتیم کانال فعلی‌مون رو به طور تخصصی به مباحث لاراول اختصاص بدیم.
قول می‌دیم که اینجا پر از مطالب جذاب و به‌روز در این زمینه باشه. 😎🥹

ولی در عین حال، دلمون نیومد که بقیه موضوعات مهم برنامه‌نویسی رو نادیده بگیریم. پس، با افتخار اعلام می‌کنیم که یک کانال جدید راه‌اندازی کرده‌ایم!
در این کانال جدید، ما به اخبار داغ برنامه‌نویسی، ترندها، و به زبانهای دیگه می‌پردازیم.

حضور شما در این کانال جدید، برای ما افتخاری بزرگه. 😍🤩

➡️ @PapiDon_coding
28👏2🙏1