کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
کانال آموزشی لاراول
How to handle Webhook in Laravel: 📌 اگر نمیدونی مفهوم وب‌هوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده. 💻 برای رسیدگی به وب‌هوک‌ها در لاراول، مراحل خاصی را باید دنبال کنید. لاراول امکانات زیادی برای تسهیل کار با وب‌هوک‌ها فراهم می‌کند. در…
🛠 منطق پردازش وب‌هوک در لاراول (Laravel):

- منطق پردازش وب‌هوک به کدی اشاره دارد که در داخل تابع handle در WebhookController نوشته می‌شود. این منطق بستگی به نوع وب‌هوک و کاربرد خاص آن در برنامه شما دارد.

1️⃣ تأیید اعتبار درخواست:
- اولین قدم تأیید اعتبار درخواست است، که شامل بررسی منبع درخواست و احتمالاً توکن‌های امنیتی یا امضاهای دیجیتال است.


if (! $this->isRequestValid($request)) {
return response('Invalid request', 403);
}



2️⃣ پردازش داده‌های دریافتی:
- پردازش داده‌های دریافتی بسته به نوع وب‌هوک، که ممکن است شامل خواندن و تجزیه این داده‌ها باشد.


$data = $request->input('data');
// انجام عملیات بر اساس داده‌های دریافتی



3️⃣ بروزرسانی پایگاه داده:
- بروزرسانی پایگاه داده بر اساس اطلاعات دریافتی، مثلاً به‌روزرسانی وضعیت سفارش در پایگاه داده.


Order::find($data['order_id'])->update(['status' => $data['status']]);



4️⃣ ارسال اطلاعیه‌ها:
- ارسال اطلاعیه‌هایی بر اساس وب‌هوک به کاربران یا سایر سیستم‌ها.

Notification::send($user, new OrderStatusUpdated($order));



5️⃣ لاگ‌گیری و خطایابی:
- لاگ‌گیری فرآیند پردازش وب‌هوک برای اهداف خطایابی یا حسابرسی.

Log::info('Webhook processed', ['data' => $data]);




کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍92🔥1
📖 آرکیلوخوس، شاعر یونان باستان، می‌گوید:

"ما به سطح انتظاراتمان بالا نمی‌رویم، بلکه به سطح آموزش‌هایمان سقوط می‌کنیم."

🎯 این جمله پیامی عمیق دارد:

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


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
10👍4💯1
کانال آموزشی لاراول
Photo
🌐 معرفی FilamentPHP:
ابزاری قدرتمند برای توسعه‌دهندگان وب بر پایه Laravel

🛠 در واقع FilamentPHP، یک کتابخانه فوق‌العاده برای ساخت رابط کاربری (UI) و تجربه کاربری (UX) در برنامه‌های وب Laravel است. این ابزار با امکانات گسترده‌ای که ارائه می‌دهد، به توسعه‌دهندگان کمک می‌کند تا رابط‌های کاربری جذاب و کارآمد بسازند.

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

1️⃣ داشبوردها و پنل‌های ادمین: ساخت داشبوردهای مدیریتی و پنل‌های کاربری با طراحی زیبا و کاربردی.

2️⃣ کامپوننت‌های قابل استفاده مجدد: مجموعه‌ای از عناصر UI مانند فرم‌ها، دکمه‌ها و جدول‌ها برای استفاده در پروژه‌ها.

3️⃣ طراحی واکنش‌گرا: رابط‌های کاربری سازگار با انواع دستگاه‌ها و اندازه‌های مختلف صفحه‌نمایش.

4️⃣ تنظیمات و افزونه‌های قابل گسترش: امکان اضافه کردن ویژگی‌های جدید به راحتی.

5️⃣ سهولت در توسعه: افزایش کارایی و کاهش زمان توسعه با استفاده از FilamentPHP.

🔍 جمع‌بندی:

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

🔗 صفحه مستندات:
https://filamentphp.com/docs


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍152🔥1
Media is too big
VIEW IN TELEGRAM
این ویدیو در مورد پکیج "Laravel Pulse" است و به بررسی ویژگی‌های مختلف "Pulse" می‌پردازد.

🔹در این ویدیو، نحوه نصب و استفاده از "Pulse" در یک برنامه Laravel نشان داده می‌شود. توضیح داده می‌شود که چگونه "Pulse" می‌تواند داده‌های مختلف، کارهای در صف، کوئری‌های کند، استثناها، درخواست‌ها، و درخواست‌های خروجی را جمع‌آوری و نمایش دهد.

🔸همچنین، امکان سفارشی‌سازی داشبورد "Pulse" و افزودن کارت‌های سفارشی برای نمایش داده‌های دلخواه وجود دارد.

🔹ویدیو همچنین به برخی از ملاحظات عملکردی می‌پردازد، مانند استفاده از پایگاه داده جداگانه برای داده‌های "Pulse"، استفاده از Redis برای کاهش بار بر روی پایگاه داده اصلی، و نمونه‌برداری داده‌ها برای کاهش بار سرور در وب‌سایت‌های با ترافیک بالا.

🧩 در کل، این ویدیو یک معرفی جامع به "Laravel Pulse" و نحوه استفاده از آن برای بهبود عملکرد و نظارت بر برنامه‌های Laravel است.


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🤩11👍5🔥2
کانال آموزشی لاراول
Video
فیلتر کردن پاسخ‌های API با Laravel Purity

بسته Laravel Purity یک پکیج فیلتر کردن و مرتب‌سازی زیبا و کارآمد برای Laravel است که برای ساده‌سازی منطق پیچیده فیلتر داده‌ها و مرتب‌سازی برای کوئری‌های eloquent طراحی شده است. با افزودن ساده ()filter به کوئری‌ Eloquent خود، می‌توانید امکان فیلتر کردن توسط کاربران frontend را بر اساس پارامترهای رشته کوئری‌ URL به آسانی فراهم کنید.

🔸 فرض کنید کنترلر شما مجموعه‌ای از کتاب‌ها را برمی‌گرداند و می‌خواهید اجازه فیلتر کردن بر اساس slug دسته‌بندی mystery را بدهید:

return Book::filter()->with('category')->get();


با استفاده از این بسته، حالا می‌توانید درخواستی ارسال کنید که هدف‌گیری slug دسته‌بندی یا هر فیلد دیگری که اجازه فیلتر شدن را می‌دهید:

/api/books?filters[category][slug][$eq]=mystery


پاسخ فیلتر شده اکنون تنها شامل کتاب‌هایی در دسته‌بندی با slug mystery خواهد بود. Purity انواع فیلترها را برای مواردی مانند in$ و lt$ یا gt$ و غیره ارائه می‌دهد.

🔹در واقع Purity ویژگی‌های اصلی زیر را برای تبدیل شدن به یک بسته قدرتمند فیلتر کردن و مرتب‌سازی داده‌ها برای مدل‌های Eloquent ارائه می‌دهد:

- پشتیبانی از Livewire
- تغییر نام و محدود کردن فیلدها
- روش‌های مختلف فیلتر
- نصب و استفاده آسان
- فیلتر بر اساس ستون‌های رابطه
- فیلترهای سفارشی
- مرتب‌سازی چند ستونه

🔗 برای دستورالعمل‌های استفاده و راه‌اندازی، صفحه مستندات Purity را بررسی کنید!



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍112🔥1
📊 Laravel Easy Metrics

🧐 معرفی:
لاراول ایزی متریکس، یک بسته قدرتمند برای ایجاد و مدیریت معیارها (متریک‌ها) در برنامه‌های نوشته شده با استفاده از فریمورک لاراول است. این بسته به شما کمک می‌کند تا به راحتی داده‌های مربوط به کاربران، تراکنش‌ها، و دیگر فعالیت‌ها را جمع‌آوری، تحلیل و نمایش دهید.

🔧 نصب و راه‌اندازی:
برای نصب Laravel Easy Metrics، از طریق Composer عمل کنید. کافی است دستور زیر را در ترمینال خود اجرا کنید:

composer require sakanjo/laravel-easy-metrics


پس از نصب، می‌توانید تنظیمات مورد نیاز را در فایل پیکربندی بسته انجام دهید.

📈 ایجاد متریک‌ها:
این بسته امکان ایجاد متریک‌های مختلف را فراهم می‌آورد. برای مثال، می‌توانید متریک‌هایی برای پیگیری تعداد کاربران جدید، تعداد تراکنش‌ها، یا هر شاخص دیگری که برای کسب‌وکار شما مهم است، ایجاد کنید.

👩‍💻 کدنویسی:
برای ایجاد یک متریک جدید، باید یک کلاس متریک ایجاد کنید و متدهای مورد نیاز برای جمع‌آوری و نمایش داده‌ها را پیاده‌سازی نمایید. Laravel Easy Metrics با ارائه ابزارهایی برای ساده‌سازی این فرآیند، کار شما را راحت‌تر می‌کند.

🔢 داده‌ها و گزارش‌ها:
پس از ایجاد متریک‌ها، می‌توانید گزارش‌های دقیق و مفیدی را بر اساس داده‌های جمع‌آوری شده ایجاد کنید. این گزارش‌ها می‌توانند در تصمیم‌گیری‌های کسب‌وکاری و تحلیل‌های استراتژیک به شما کمک کنند.

🔗 پیوندهای مفید:
برای کسب اطلاعات بیشتر و مشاهده مستندات کامل Laravel Easy Metrics



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍7👌21
🔗 Sushi: Eloquent’s Missing “Array” Driver

🍱 در واقع Sushi، ابزاری قدرتمند از Caleb Porzio، به شما اجازه می‌دهد که مدل‌های Eloquent را در Laravel بدون استفاده از دیتابیس واقعی بسازید. این به خصوص برای داده‌هایی که تغییر نمی‌کنند یا به ندرت تغییر می‌کنند، مفید است.

مثلاً، در مورد داده‌هایی مانند فهرست کشورها، که به ندرت تغییر می‌کنند، استفاده از Sushi امکان ذخیره این داده‌ها درون یک آرایه در کلاس مدل را فراهم می‌کند، به جای اینکه نیاز به جدول دیتابیس باشد.

🛠 این کار باعث ساده‌سازی و افزایش سرعت توسعه می‌شود، به ویژه در مواردی که استفاده از یک دیتابیس کامل ضروری نیست.

📚 برای مشاهده نحوه استفاده و مثال‌های بیشتر، به لینک GitHub زیر مراجعه کنید:

🔗 GitHub - calebporzio/sushi



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍82🔥1
کانال آموزشی لاراول
Photo
یادگیری به سبک T-Shape: راز موفقیت در عرصه‌های چندرشته‌ای

📝 چرا یادگیری T-Shape اهمیت دارد؟

در دنیای پرتغییر امروز، داشتن تخصص عمیق در یک حوزه کافی نیست. یادگیری T-Shape به شما کمک می‌کند تا علاوه بر تخصص در یک زمینه، دانش کافی در حوزه‌های مختلف داشته باشید تا بتوانید در محیط‌های کاری متنوع و پروژه‌های چندرشته‌ای بهتر عمل کنید.

🔸 بخش عمودی T (تخصص عمیق):

یادگیری T-Shape از این بخش شروع می‌شود. شما باید در یک حوزه خاص تخصص و مهارت عمیق داشته باشید. این می‌تواند هر چیزی از برنامه‌نویسی گرفته تا مدیریت، بازاریابی، یا حتی هنر باشد. تمرکز بر این حوزه باعث می‌شود که در آن زمینه یک متخصص واقعی شوید.

🔹بخش افقی T (دانش گسترده):

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

🎯 چرا این مدل یادگیری مفید است؟

- افزایش توانایی همکاری: با داشتن دانش در زمینه‌های مختلف، می‌توانید بهتر با افراد از حوزه‌های گوناگون همکاری کنید.

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

- انعطاف‌پذیری در شغل: داشتن مهارت‌های متنوع، شما را برای فرصت‌های مختلف شغلی آماده می‌کند.

🌱 چگونه می‌توانیم این مفهوم را در زندگی خود پیاده‌سازی کنیم؟

- ابتدا بر روی توسعه تخصص عمیق در یک حوزه تمرکز کنید.

- سپس، به دنبال فرصت‌های یادگیری در سایر حوزه‌ها باشید تا دیدگاه خود را گسترش دهید.

- شرکت در کارگاه‌ها، دوره‌های آنلاین، و سمینارها در زمینه‌های متفاوت می‌تواند به شما در کسب دانش گسترده کمک کند.

- ایجاد شبکه‌های حرفه‌ای با افرادی از حوزه‌های متفاوت به شما کمک می‌کند تا بینش‌های جدید کسب کنید و از تجربیات آنها یاد بگیرید.

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

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

یادگیری T-Shape به شما این امکان را می‌دهد که در یک حوزه متخصص شوید و همزمان درک گسترده‌ای از سایر زمینه‌ها داشته باشید. این ترکیب از تخصص عمیق و دانش گسترده به شما کمک می‌کند تا در محیط‌های کاری چندرشته‌ای برجسته شوید و مسیر حرفه‌ای خود را به سمت موفقیت‌های بزرگتر هدایت کنید.



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔥6👍31👏1
کانال آموزشی لاراول
Photo
🛡Encrypting and Decrypting Data in Laravel

🛡رمزگذاری و رمزگشایی داده‌ها در لاراول

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

🔐 رمزگذاری در لاراول:

لاراول یک روش ساده برای رمزگذاری داده‌ها با استفاده از تابع encrypt فراهم می‌کند. این تابع برای انجام رمزگذاری از کتابخانه OpenSSL استفاده می‌کند و امنیت بالایی را تضمین می‌کند.

// رمزگذاری داده‌ها
$originalData = 'Hello, world!';
$encryptedData = encrypt($originalData);


تابع encrypt داده‌های اصلی را به نسخه‌ای رمزگذاری شده و کدگذاری شده با base64 تبدیل می‌کند. این به‌ویژه زمانی مفید است که نیاز دارید اطلاعات حساس را در پایگاه داده‌ها ذخیره یا به صورت امن انتقال دهید.

🔓 رمزگشایی در لاراول:

برای بازیابی داده‌های اصلی، لاراول تابع decrypt را ارائه می‌دهد. این تابع فرآیند رمزگذاری را معکوس کرده و داده‌ها را با استفاده از کلید رمزگذاری مناسب رمزگشایی می‌کند.

// رمزگشایی داده‌ها
$decryptedData = decrypt($encryptedData);


با رمزگشایی داده‌ها، می‌توانید اطلاعات اصلی را بازیابی کرده و از آن‌ها در برنامه‌تان استفاده کنید.

⚙️ مثال عملی:

بیایید یک مثال عملی در کنترلر لاراول در نظر بگیریم:

use Illuminate\Support\Facades\Crypt;

class EncryptionController extends Controller
{
public function encryptAndDecrypt()
{
// رمزگذاری داده‌ها
$originalData = 'Hello, world!';
$encryptedData = encrypt($originalData);
// رمزگشایی داده‌ها
$decryptedData = decrypt($encryptedData);
// نمایش نتایج
return [
'original_data' => $originalData,
'encrypted_data' => $encryptedData,
'decrypted_data' => $decryptedData,
];
}
}


در این مثال، ما یک رشته را رمزگذاری و سپس آن را رمزگشایی می‌کنیم که سادگی فرآیند را نشان می‌دهد.


💡 استفاده از encryptString و decryptString:

برای راحتی بیشتر، لاراول از طریق نمایه Crypt، متدهای encryptString و decryptString را فراهم می‌کند.

$encryptedString = Crypt::encryptString('Hello, world!');
$decryptedString = Crypt::decryptString($encryptedString);


این متدها یک نحو ساده‌تر را ارائه می‌دهند، که ادغام رمزگذاری و رمزگشایی را مستقیماً در کد شما آسان‌تر می‌کند.

🔔 نکات مهم:

- حفظ امنیت کلید رمزگذاری:

لاراول برای رمزگذاری به کلید APP_KEY مشخص شده در فایل env. شما تکیه می‌کند. مطمئن شوید که این کلید محرمانه نگه داشته می‌شود، زیرا هر کسی که به آن دسترسی داشته باشد، می‌تواند داده‌ها را رمزگشایی کند.

- سازگاری نسخه:

لاراول در حال تکامل است و syntax آن ممکن است در نسخه‌های مختلف متفاوت باشد. همیشه به مستندات رسمی برای نسخه لاراولی که استفاده می‌کنید مراجعه کنید.



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍11🔥2
دوستان و همراهان عزیز، سلام! 👋

🕒 در دنیای پرمشغله امروز، یکی از مهم‌ترین مهارت‌هایی که هر فردی نیاز دارد، "مدیریت زمان" و "اولویت‌بندی کارها" است.

🔍 ما در کانال اتاق برنامه‌نویسی </> قصد داریم به این موضوعات مهم گاهی بپردازیم و با ارائه اطلاعات، تکنیک‌ها و راهکارهای کاربردی نگاهی به این مفاهیم داشته باشیم.

👀 ازینجا مسیر موضوع را دنبال کنید ...

👈🏻 🔗 هدفگذاری SMART
3🔥1👏1
کانال آموزشی لاراول
Video
🌐 What is a Sitemap ?

یک Sitemap نقشه‌ای از وب‌سایت است که به موتورهای جستجو کمک می‌کند تا صفحات وب‌سایت شما را بهتر و سریع‌تر پیدا و ایندکس کنند. به زبان ساده‌تر، فهرستی از تمام صفحات موجود در وب‌سایت شماست که در قالبی قابل خواندن برای ربات‌های جستجو ارائه می‌شود.

🧐 اهمیت Sitemap چیست؟

🔸بهبود ایندکس‌شدن:
با داشتن Sitemap، موتورهای جستجو می‌توانند به راحتی صفحات جدید یا به‌روزرسانی‌های وب‌سایت شما را پیدا کنند.

🔸سازماندهی بهتر:
اگر وب‌سایت شما دارای تعداد زیادی صفحه یا محتوای پیچیده است، Sitemap به سازماندهی و دسته‌بندی محتوا کمک می‌کند.

🔸(بهینه‌سازی موتور جستجو) SEO :
به بهبود رتبه‌بندی وب‌سایت شما در نتایج جستجو کمک می‌کند، زیرا موتورهای جستجو بهتر می‌توانند محتوای شما را درک کنند.

🛠 انواع Sitemap:

🔹Sitemap XML:

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

🔹Sitemap HTML:

بیشتر برای کاربران است و به آن‌ها کمک می‌کند تا به راحتی در وب‌سایت شما جستجو کرده و محتوای مورد نیاز خود را پیدا کنند.


🌟 در اپلیکیشن لاراول خود با استفاده از Spatie Sitemap نقشه سایت بسازید.

🔔 ایجاد دستی این نقشه‌ها امکان‌پذیر است، و ما آموزشی در مورد نحوه ایجاد دستی نقشه سایت در اینجا داریم، اما یک پکیج با نام "laravel-sitemap" از Spatie ایجاد نقشه سایت را آسان‌تر از همیشه می‌کند.

⚙️ یکی از مزایای این بسته این است که دو روش برای ایجاد نقشه سایت فراهم می‌کند. اول اینکه می‌تواند به صورت خودکار سایت شما را جستجو کند و بر اساس پیوندهای داخلی آن را بسازد، یا اینکه می‌توانید کنترل کامل داشته باشید و به صورت دستی آن را بسازید.

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





کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
5🔥1
کانال آموزشی لاراول
Photo
Generate PDFs in Laravel from Blade Views

پکیج Laravel PDF از Spatie، روشی ساده برای ایجاد فایل‌های PDF در برنامه‌های Laravel فراهم می‌کند. این پکیج از نماهای Blade برای رندر کردن HTML استفاده می‌کند و سپس از آن نما برای ایجاد یک PDF با استفاده از Browsershot بهره می‌برد.

این امر امکان استفاده از ابزارهای CSS مدرن مانند Grid و Flexbox، فریم‌ورک‌های CSS مدرن مانند Tailwind و حتی کدهای جاوااسکریپت برای مواردی مانند رندر کردن نمودارها را فراهم می‌کند.

🛠 در اینجا یک مثال ابتدایی از ایجاد یک PDF و بازگرداندن آن از یک کنترلر آورده شده است، که متغیرهایی را به template ارسال می‌کنید که می‌توانید از آن‌ها برای رندر داینامیک داده‌های PDF استفاده کنید:

use Spatie\LaravelPdf\Facades\Pdf;

class DownloadInvoiceController
{
public function __invoke(Invoice $invoice)
{
return Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format('a4')
->name('your-invoice.pdf');
}
}


🔸پکیج Laravel PDF از ویژگی‌های زیر پشتیبانی می‌کند:

- رندر PDF‌ها از الگوهای Blade یا یک رشته HTML

- ذخیره یک PDF تولید شده در Laravel disk

- اجرای کد جاوااسکریپت هنگام ایجاد PDF

- تست فیک PDF با assertions قدرتمند

- تولید PDF‌ها در Lambda از طریق Laravel Sidecar

- کنترل پیشرفته PDF با ابزارهایی مانند page breaks، سفارشی‌سازی Browsershot

- و موارد دیگر...

ایجاد PDF‌ها در Laravel با استفاده از Blade، تولید PDF‌های سفارشی زیبا را آسان‌تر و قدرتمندتر از همیشه خواهد کرد!

🔗 مستندات رسمی پکیج




کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍10🔥1