کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
کانال آموزشی لاراول
Photo
🔍 همه ما برنامه‌نویس‌ها می‌دونیم که کار با آرایه‌ها جزء جدایی‌ناپذیر کدنویسیه، اما گاهی اوقات با پیچیدگی‌هاش درگیر می‌شیم! 🤯 خوشبختانه لاراول یک جعبه ابزار داره که کار با آرایه‌ها رو لذت‌بخش می‌کنه.

یکی از این ابزارها، کلاس 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
👍423🎉1
کانال آموزشی لاراول
Photo
🔎 مفهوم Binding Interface to Implementations در Laravel چیست؟

در دنیای برنامه‌نویسی، توانایی جداسازی منطق و عملیات از یکدیگر و ایجاد یک ساختار ماژولار و قابل توسعه، یکی از موارد کلیدی برای ساخت برنامه‌های قابل نگهداری و توسعه است. فریم‌ورک Laravel با ارائه امکانات و اصول برنامه‌نویسی مدرن، به برنامه‌نویسان این امکان را می‌دهد تا با استفاده از بهترین روش‌ها و الگوها، برنامه‌هایی قوی و پایدار بسازند.
یکی از این الگوها، الگوی ارتباط‌دهی بین رابط‌ها و پیاده‌سازی‌ها (Binding Interface to Implementations) است که ما را قادر می‌سازد تا کد را به گونه‌ای بنویسیم که قابل تست، قابل فهم و قابل توسعه باشد.

1️⃣ تعریف رابط (Interface): ابتدا یک رابط تعریف می‌کنیم که متدهای مورد نیاز را مشخص می‌کند.

interface PaymentGatewayInterface {
public function charge($amount);
}


2️⃣ پیاده‌سازی رابط (Implementing the Interface): سپس یک کلاس می‌سازیم که این رابط را پیاده‌سازی می‌کند.

class StripePaymentGateway implements PaymentGatewayInterface {
public function charge($amount) {
// Implementation for charging via Stripe
}
}


3️⃣ ارتباط‌دهی در سرویس پروایدر (Binding in Service Provider): در نهایت، در یک سرویس پروایدر این ارتباط را تعریف می‌کنیم.

public function register()
{
$this->app->bind(
PaymentGatewayInterface::class,
StripePaymentGateway::class
);
}


🔑 کاربرد:
- این تکنیک به ما این امکان را می‌دهد که به راحتی کلاس‌های مختلف را تست کنیم.
- امکان جایگزینی پیاده‌سازی‌ها بدون تغییر در کد اصلی.
- افزایش انعطاف‌پذیری و ترتیب‌پذیری کد.

با استفاده از این مکانیزم، هرجا که Laravel ببیند شما از PaymentGatewayInterface درخواست دارید، نمونه‌ای از StripePaymentGateway فراهم می‌کند، که به شما کمک می‌کند کد خود را بیشتر ماژولار و قابل تست کنید. 🔄💡


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

📌 @PapiDon_state
👍101
خبر جدید برای دوست‌داران Laravel 🧐

📢 تیلور اتول، بنیان‌گذار Laravel، اخیراً از محصول جدیدی به نام "Laravel Pulse" رونمایی کرده است. این ابزار جدید، که قرار است به صورت رایگان و منبع باز عرضه شود، شایعاتی را در مورد اینکه ممکن است یک سیستم بررسی سلامت برای برنامه‌های Laravel باشد، مورد توجه قرار گرفته. انتظار می‌رود این محصول به زودی در کنفرانس Laracon AU به طور کامل معرفی و نمایش داده شود.

ما منتظریم تا ببینیم Laravel Pulse چه قابلیت‌های تازه‌ای را برای توسعه‌دهندگان فراهم می‌آورد و چگونه می‌تواند به بهبود و نگهداری اپلیکیشن‌های ما کمک کند.

🔔 با ما همراه باشید برای آخرین اخبار و به‌روزرسانی‌های Laravel Pulse. 😉

📌 @PapiDon_state
🔥154👍4
سلام به همه دوستان عزیز و گرامی 😊

قبل از هرچیزی لازم تشکر کنیم برای مشارکتتون در نظرسنجی و حضورتون باعث دلگرمی و افتخار ماست. 🫶

بر اساس نظرسنجی که داشتیم، متوجه شدیم که علاقه‌مندید تا محتوا بیشتری پیرامون برنامه نویسی با فریم‌ورک لاراول داشته باشیم. پس با کمال میل، بیشتر مطالب رو به این موضوع اختصاص می‌دیم. 😁😊

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

هدف اینه که یک دایره‌المعارف کامل و جامع در اختیار داشته باشیم تا، شاید همین اطلاعات بتونه در مسیر پیشرفت شغلی و تخصصی‌مون به ما کمک کنه. 😊

باز هم می‌گم، از اینکه با ما هستید و به ما انگیزه می‌دهید، متشکریم🫶❤️😊

امیدوارم همیشه بتونیم مطالبی ارائه بدیم که بتونید با افتخار بگید که از اعضای این کانال هستید. 😊
23👍1👏1
🔐 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