کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
کانال آموزشی لاراول
Photo
معرفی فریمورک Lumen - نسخه‌ی میکروی Laravel

🔸یک پروژه‌ی جدید و میکرو-فریمورک، توسط Taylor Otwell، خالق اصلی فریمورک Laravel، به عرصه‌ی برنامه‌نویسی معرفی شده است. Lumen را می‌توان نسخه‌ای سبک‌وزن، سریع و ظریف از Laravel دانست، که به‌ویژه برای توسعه‌ی میکروسرویس‌ها و API‌های واکنش‌گرا در زبان PHP طراحی شده است.

🚀 چرا Lumen؟

📈 سرعت بالا: Lumen با قدرت بیش از 1,700 درخواست در ثانیه، سریع‌تر از همتایان خود Slim (1,250 درخواست/ثانیه) و Silex (950 درخواست/ثانیه) است.

🛠 کدنویسی ساده: با سینتکسی ساده و کاربرپسند، کدنویسی در Lumen برای توسعه‌دهندگان بسیار راحت است.

🔄 قابلیت ارتقا به Laravel: شما می‌توانید در هر زمانی پروژه‌ی Lumen خود را به یک پروژه‌ی کامل Laravel ارتقا دهید.

⚙️ ویژگی‌های کلیدی: شامل سیستم‌هایی چون Fast Route، Event Management، Authentication با توکن‌ها، Caching، Error Logging با استفاده از Monolog و Queuing.

🔍 Laravel یا Lumen ?

- لاراول یک فریمورک کامل و جامع برای توسعه‌ی وب است، در حالی که لومن به‌عنوان یک میکرو-فریمورک برای ساختن میکروسرویس‌ها و API‌ها طراحی شده است.

- لومن (lumen) برخی از ویژگی‌های Laravel مانند سشن‌ها، کوکی‌ها و تمپلیت‌ها را حذف کرده تا سبک‌تر و تخصصی‌تر باشد.

📚 نیازمندی‌های Lumen:

برای استفاده از Lumen، شما به PHP با افزونه‌های OpenSSL، PDO و Mbstring نیاز دارید و همچنین باید Composer را نصب کنید.

چرا ممکن است Lumen مناسب شما نباشد؟

- لومن تنظیمات محدودتری نسبت به Laravel دارد.
- اگر نیاز به ویژگی‌های پیچیده‌ی Routing سیستم Symfony دارید، Laravel گزینه‌ی بهتری است.

- لومن کمتر شناخته‌شده است و کمتر مورد استفاده قرار گرفته نسبت به Laravel.

🏁 جمع‌بندی:

لومن (lumen)، میکروفریمورکی مدرن و سریع برای PHP، انتخاب عالی برای توسعه‌ی میکروسرویس‌ها و API‌های سریع و کارآمد است. با این حال، اگر نیاز به قابلیت‌های جامع‌تری دارید، Laravel ممکن است انتخاب بهتری باشد.

👍 نصب و تست Lumen ساده است و ارزش امتحان کردن را دارد. هر زمان که بخواهید، می‌توانید Lumen را به یک پروژه‌ی کامل Laravel ارتقا دهید.

🔗 وبسایت رسمی Lumen



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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍81🔥1👏1
کانال آموزشی لاراول
Photo
درک Memoization در لاراول

یک تکنیک بهینه‌سازی است که برای افزایش سرعت اجرای برنامه‌ها با ذخیره‌سازی نتایج عملیات‌های پرهزینه (مانند فراخوانی‌های تابع یا دسترسی‌های پایگاه داده) و استفاده مجدد از این نتایج در فراخوانی‌های بعدی به جای انجام مجدد عملیات استفاده می‌شود.

🛠 کاربرد Memoization در لاراول

در لاراول، memoization می‌تواند به خصوص در بهینه‌سازی عملکرد کوئری‌های پایگاه داده، محاسبات پیچیده یا فراخوانی‌های API که زمان و منابع زیادی را مصرف می‌کنند، مفید باشد. با ذخیره‌سازی نتیجه این عملیات‌ها، لاراول می‌تواند به سرعت به داده‌های قبلاً محاسبه‌شده دسترسی پیدا کند و از انجام مجدد کوئری‌ها یا محاسبات جلوگیری کند.

🧐 چگونگی استفاده از Memoization

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

2️⃣ کدنویسی تابع با Memoization: هنگام نوشتن تابعی که قرار است از memoization استفاده کند، باید ابتدا بررسی کنید که آیا نتیجه عملیات قبلاً محاسبه و ذخیره شده است یا خیر. اگر نتیجه موجود باشد، باید آن را بازیابی و برگردانید؛ در غیر این صورت، باید عملیات را انجام دهید، نتیجه را ذخیره کنید و سپس آن را برگردانید.

3️⃣ کلیدهای کش: برای هر نتیجه ذخیره‌شده، باید یک کلید منحصر به فرد تعریف کنید. این کلید باید تمام پارامترهای ورودی تابعی که ممکن است نتیجه را تغییر دهند را در نظر بگیرد.

⚙️ مثال عملی

فرض کنید می‌خواهیم نتایج یک کوئری پایگاه داده سنگین را که لیستی از کاربران را برمی‌گرداند، memoize کنیم:

use Illuminate\Support\Facades\Cache;

function getHeavyUsersQuery() {
$key = 'heavy_users_query_result';
$ttl = 60 * 60;

// زمان زنده بودن کش به ثانیه، مثلاً یک ساعت

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

if (Cache::has($key)) {
// بازگرداندن نتیجه از کش
return Cache::get($key);
}


// انجام کوئری و ذخیره‌سازی نتیجه در کش اگر نتیجه در کش موجود نباشد

$result = User::where('some_condition', true)->get();
Cache::put($key, $result, $ttl);

return $result;
}


🔸 در Laravel، Memoization به صورت معمول از کش‌ها (Caching) استفاده می‌کند. وقتی یک محاسبه انجام می‌شود، نتیجه آن به عنوان یک کلید-مقدار در کش (Cache) ذخیره می‌شود. بار دیگری که همان محاسبه مورد نیاز است، ابتدا کش بررسی می‌شود. اگر نتیجه در کش وجود داشته باشد، برنامه از کش استفاده می‌کند به جای اجرای محاسبه مجدد. این کار باعث افزایش سرعت عملکرد برنامه می‌شود.

📚 نتیجه‌گیری

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





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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍12🔥4
کانال آموزشی لاراول
Photo
دستورات کلیدی و نکات مهم Laravel Queue

در این پست، به بررسی دقیق و جامع دستورات صف (Queue) در Laravel می‌پردازیم.

1️⃣ ایجاد جدول‌ها

- php artisan queue:table

- جدول‌های لازم برای ذخیره‌سازی job‌ها در دیتابیس را ایجاد می‌کند. این دستور برای زمانی که از درایور دیتابیس برای صف‌ها استفاده می‌کنید، ضروری است.

- php artisan queue:failed-table

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

2️⃣ اجرای و مدیریت Worker‌ها

- php artisan queue:work

- یک worker صف را اجرا می‌کند تا job‌های موجود در صف را پردازش کند. این دستور برای شروع فرآیند پردازش صف است.

- php artisan queue:listen

- مشابه queue:work است، اما برای هر job یک پروسه جدید ایجاد می‌کند. مناسب برای محیط توسعه به دلیل آسانی در ردیابی خطاها.

- php artisan queue:restart

- تمام worker‌های صف را ری‌استارت می‌کند. مفید است زمانی که کد جدیدی منتشر شده و می‌خواهید تغییرات را اعمال کنید.

3️⃣ مدیریت Job‌های شکست‌خورده

- php artisan queue:retry {id}

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

- php artisan queue:forget {id}

- یک job شکست‌خورده خاص را از جدول job‌های شکست‌خورده حذف می‌کند. استفاده می‌شود وقتی دیگر نیازی به امتحان مجدد یک job نیست.

- php artisan queue:flush

- تمام job‌های شکست‌ خورده را از جدول پاک می‌کند. برای پاک‌سازی و ریست کردن صف‌های شکست‌خورده استفاده می‌شود.

- php artisan queue:failed

- لیستی از تمام job‌های شکست‌خورده را نمایش می‌دهد. برای تحلیل و بررسی خطاها استفاده می‌شود.

4️⃣ تاخیر و تلاش مجدد در Job‌ها

- Dispatching with Delay:

- برای ارسال یک job به صف با تاخیر، می‌توانید از متد dispatch با اضافه کردن ->delay($time) استفاده کنید، مثلاً

SomeJob::dispatch()->delay(now()->addMinutes(10));


- Release for Retry:

- دستور `release($delay)`در داخل یک job اجرا می‌شود تا آن job را برای اجرای مجدد با تاخیر در صف قرار دهد. بسیار مفید برای زمان‌هایی که می‌خواهید یک job را پس از بروز یک خطای موقتی دوباره امتحان کنید.

5️⃣ تعیین زمان انقضا برای تلاش مجدد

- Using retryUntil:

- در داخل کلاس job، متد retryUntil را تعریف کنید تا زمان انقضا برای تلاش‌های مجدد را مشخص کنید. این متد باید تاریخ و زمانی را که می‌خواهید job دیگر امتحان مجدد نشود را بازگرداند.

- مثال:
    public function retryUntil()
{
// تلاش مجدد برای یک ساعت پس از اولین اجرا
return now()->addHours(1);
}




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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍95🔥3
کانال آموزشی لاراول
Photo
معرفی ابزار جادویی برای توسعه‌دهندگان Laravel: Blueprint!

🛠 Blueprint

یک ابزار کدنویسی قدرتمند برای فریم‌ورک Laravel است که به توسعه‌دهندگان کمک می‌کند تا با سرعت و کارآمدی بیشتری کد بنویسند. با استفاده از یک فایل YAML ساده، می‌توانید مدل‌ها، کنترلر‌ها، و سایر قسمت‌های پروژه Laravel خود را تعریف و سپس کد مورد نیاز را به صورت خودکار تولید کنید.

⚙️ چگونه کار می‌کند؟

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

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

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

🔥 ویژگی‌های کلیدی:

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

📘 چگونه شروع کنیم؟

برای شروع با Blueprint، به سادگی آن را از طریق Composer نصب کنید و دستورالعمل‌های موجود در مستندات رسمی را دنبال کنید. توجه داشته باشید که داشتن دانش پایه‌ای از Laravel و YAML برای استفاده موثر از این ابزار ضروری است.

🔗 منابع بیشتر:

برای کسب اطلاعات بیشتر و دسترسی به مستندات کامل، به وب‌سایت رسمی Blueprint مراجعه کنید.



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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔥61👍1
🔥5
کانال آموزشی لاراول
Photo
بهینه‌سازی عملکرد با استفاده از [()Computed]# در Livewire

سلام دوستان! 😊👋
امروز می‌خواهیم در مورد یکی از ویژگی‌های جذاب و کاربردی Livewire صحبت کنیم که می‌تواند به شما در بهینه‌سازی عملکرد برنامه‌های وب کمک کند! نام این ویژگی [()Computed]# است.

🤔 چرا [()Computed]# مهم است؟

فرض کنید یک فانکشن دارید که داده‌هایی را از دیتابیس بازیابی می‌کند. این داده‌ها ممکن است پست‌های یک وبلاگ، لیست محصولات یا هر چیز دیگری باشند. بدون [()Computed]#, هر بار که کاربر عملی را انجام می‌دهد، ممکن است این فانکشن دوباره و دوباره اجرا شود. این می‌تواند منجر به اتلاف منابع و کاهش سرعت برنامه شود.

🛠 چگونه [()Computed]# کمک می‌کند؟

وقتی شما [()Computed]# را به فانکشنی اضافه می‌کنید، Livewire نتیجه فانکشن را "به یاد می‌آورد". اگر دفعه بعد ورودی‌های فانکشن تغییر نکرده باشند، به جای اجرای دوباره فانکشن، Livewire از نتیجه ذخیره‌شده قبلی استفاده می‌کند. این کار باعث می‌شود برنامه شما سریع‌تر و کارآمدتر کار کند.

🧐کجا باید از [()Computed]# استفاده کنیم؟

1️⃣ درخواست‌های پیچیده: اگر فانکشنی دارید که کار پیچیده‌ای انجام می‌دهد یا به داده‌هایی دسترسی دارد که به ندرت تغییر می‌کنند.

2️⃣ صفحات پربازدید: در صفحاتی که تعداد زیادی کاربر به طور همزمان از آن استفاده می‌کنند و نیاز به عملکرد بالایی دارند.

⚙️ نحوه استفاده :

فقط کافی است [()Computed]# را قبل از تعریف فانکشن خود قرار دهید، مثل این:

#[Computed()]
public function posts() {
// کد برای بازیابی پست‌ها
}


با این کار، Livewire فقط در صورت لزوم فانکشن را اجرا می‌کند و نتیجه را برای استفاده‌های بعدی ذخیره می‌کند. 🌱

⚜️خلاصه که [()Computed]# یک ابزار عالی برای بهینه‌سازی عملکرد برنامه‌های وب شماست. با استفاده از این ویژگی، می‌توانید اطمینان حاصل کنید که برنامه شما همیشه با بالاترین سرعت و کارآمدی کار می‌کند.



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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍143
کانال آموزشی لاراول
Photo
ادغام Cloudflare Turnstile در Laravel و Livewire

مایلید Cloudflare Turnstile CAPTCHA را در اپلیکیشن Laravel یا Livewire خود ادغام کنید؟
این بسته ارائه شده توسط Ryan Chandler، ادغام را بسیار ساده می‌کند.

🤩 استفاده از Cloudflare Turnstile برای Laravel

اسکریپت‌های Turnstile را با استفاده از دستورالعمل Blade @turnstileScripts در بخش <head> فایل چیدمان خود قرار دهید.

<html>
<head>
@turnstileScripts()
</head>
<body>
{{ $slot }}
</body>
</html>


پس از آن، کامپوننت <x-turnstile /> را درون یک <form> استفاده کنید:

<form action="/" method="POST">
<x-turnstile />

<button>
Submit
</button>
</form>


برای تایید پاسخ CAPTCHA، از قانون اعتبارسنجی ارائه شده در سرور استفاده کنید.

use Illuminate\Validation\Rule;

public function submit(Request $request)
{
$request->validate([
'cf-turnstile-response' => ['required', Rule::turnstile()],
]);
}


🔸 Cloudflare Turnstile با Livewire

این بسته همچنین می‌تواند با Livewire ادغام شود. پس از اعتبارسنجی موفقیت‌آمیز، ویژگی مشخص شده درون wire:model با توکن Turnstile به‌روزرسانی خواهد شد.

<x-turnstile wire:model="yourModel" />


برای جزئیات بیشتر در مورد سفارشی‌سازی و ادغام آن در اپلیکیشن خود، بسته را در GitHub بررسی کنید.




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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍101
کانال آموزشی لاراول
Photo
🎉 Laravel 11 😍

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

🔍 از مهم‌ترین قابلیت‌های این نسخه می‌توان به موارد زیر اشاره کرد:

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

2️⃣ مدیریت تنظیمات: با رویکردی جدید که تمامی تنظیمات از یک منبع بالادستی به ارث می‌برند، تنظیمات را می‌توان به صورت ساده‌تر و متمرکزتری مدیریت کرد.

3️⃣ قابلیت Dumpable: تجربه‌ی دیباگ کردن را با امکان استفاده از متدهای ()dd و ()dump درون کلاس‌ها، بهبود می‌بخشد و دیباگ کردن را در سرتاسر فریمورک یکپارچه و مداوم می‌سازد.

4️⃣ به‌روزرسانی‌های مربوط به مدیریت مسیریابی: تعداد فایل‌های مسیر پیش‌فرض از چهار به دو فایل کاهش یافته و برای افزودن مسیرهای API به صورت انتخابی عمل می‌کنید، که منجر به ساختار برنامه‌ای تمیزتر و سفارشی‌تر می‌شود.

📚 سعی خواهیم کرد موضوعات مهم را در کانال به اشتراک بگذاریم و حتماً درباره آن‌ها مطلب منتشر کنیم. با ما همراه باشید. 🫶😊



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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔥17👍3🤩1
کانال آموزشی لاراول pinned «🎉 Laravel 11 😍 بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیت‌های نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعه‌دهندگان را به سطح جدیدی ارتقا می‌بخشد. 🔍 از مهم‌ترین قابلیت‌های این نسخه می‌توان به موارد…»
🔥 با ارائه نسخه 11 لاراول که SQLite را به‌عنوان پایگاه داده پیش‌فرض برگزیده، آشنایی با این تکنولوژی اکنون از اهمیت بیشتری برخوردار است.

ما در مطلبی که پیشتر در کانال اتاق برنامه نویسی </> به اشتراک گذاشته بودیم، SQLite را بررسی کرده‌ایم.

🔗 👈🏻 لینک مطلب برای مطالعه بیشتر




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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🙏7👍5🔥1👏1
کانال آموزشی لاراول
Photo
🔧 راهنمای رفع مشکل اتصال به دیتابیس در لاراول 11

🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیش‌فرض DB_CONNECTION=sqlite، برخی از توسعه‌دهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند. یکی از رایج‌ترین این خطاها مربوط به تنظیمات collation است.

برای مثال، خطای SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8mb4_0900_ai_ci' نشان می‌دهد که تنظیمات collation با نسخه فعلی سرور MySQL یا MariaDB شما سازگار نیست.


⛔️ علت خطا و راه‌حل‌ها:

خطای Unknown collation: 'utf8mb4_0900_ai_ci به این دلیل رخ می‌دهد که سرور دیتابیس MySQL یا MariaDB شما از تنظیمات collation utf8mb4_0900_ai_ci پشتیبانی نمی‌کند. این collation برای نسخه‌های جدید MySQL معرفی شده است و به بهبود عملکرد و دقت مقایسه داده‌ها کمک می‌کند، اما در نسخه‌های قدیمی‌تر MySQL یا برخی نسخه‌های MariaDB پشتیبانی نمی‌شود.


🛠 راه‌حل‌ها:

1️⃣ ارتقاء سرور MySQL/MariaDB:

اگر امکان‌پذیر است، سرور دیتابیس را به نسخه‌ای ارتقاء دهید که از این collation پشتیبانی می‌کند.

2️⃣ تغییر Collation در پروژه لاراول:

- به فایل config/database.php در پروژه لاراول خود بروید.

- در بخش اتصالات دیتابیس (mysql در این مورد)، collation را به یک مقدار سازگار با نسخه‌ی MySQL/MariaDB سرورتان تغییر دهید. برای نسخه‌های قدیمی‌تر، utf8mb4_unicode_ci توصیه می‌شود:

     'mysql' => [
...
'collation' => 'utf8mb4_unicode_ci',
...
],


📝 فایل env. پروژه خود را بررسی و اطمینان حاصل کنید که اطلاعات دیتابیس به درستی تنظیم شده‌اند:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=



⚙️ اجرای مایگریشن‌ها

با استفاده از دستور php artisan migrate ، اطمینان حاصل کنید که جدول‌های مورد نیاز در دیتابیس ایجاد شده‌اند. این کار همچنین به حل مشکلات مربوط به عدم وجود جدول‌ها کمک می‌کند.


⚜️برای اطمینان از اعمال تغییرات، دستورات php artisan config:cache و php artisan cache:clear را اجرا کنید تا تنظیمات کش شده پاک شود.



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

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍132🔥1🙏1
🪻 سال نو مبارک 🪻


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

❤️🌻🍃🥰
11👍1
1
کانال آموزشی لاراول
Photo
آموزش اضافه کردن Middleware در لاراول 11

امروز می‌خواهم با شما درباره یکی از نوآوری‌های جذاب در نسخه 11 لاراول، یعنی نحوه تعریف و استفاده از Middleware، به اشتراک بگذارم.

🤔 چرا Middleware ؟

در واقع Middlewareها بخش مهمی از هر اپلیکیشن وب هستند که به ما اجازه می‌دهند درخواست‌های وارد شده به اپلیکیشن را پیش از رسیدن به هسته‌ی اپلیکیشن (Core) یا بعد از ارسال پاسخ، فیلتر یا تغییر دهیم. این امکان از جمله کاربردهایی مانند احراز هویت، ثبت لاگ، و مدیریت دسترسی را فراهم می‌کند.

🔄 اما تغییرات در لاراول 11

در نسخه‌های پیشین لاراول، Middleware`ها را در فایل `Kernel.php تعریف می‌کردیم. اما در نسخه 11، لاراول یک رویکرد جدید را معرفی کرده که تعریف Middleware`ها را در فایل `bootstrap/app.php انجام می‌دهیم.

🛠 گام به گام تا اضافه کردن Middleware

1️⃣ ایجاد Middleware: با دستور زیر Middleware مورد نظر خود را ایجاد کنید:

php artisan make:middleware OrgCustomerAuthenticate


2️⃣ تعریف Middleware : Middleware ایجاد شده را در فایل bootstrap/app.php با استفاده از متد withMiddleware و alias تعریف کنید:


->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth.org_customer' => \App\Http\Middleware\OrgCustomerAuthenticate::class,
]);
})



3️⃣ اعمال Middleware به روت‌ها: حالا می‌توانید این Middleware را به روت یا گروهی از روت‌ها اعمال کنید:
Route::prefix('/panel')->middleware('auth.org_customer')->group(function() {
Route::get('/', [PanelController::class, 'index'])->name('panelSide');
});


🗝 نکات کلیدی

🔸به خاطر داشته باشید که این تغییرات به شما اجازه می‌دهند با ساختار ساده‌تر و انعطاف‌پذیرتری در پروژه‌های لاراولی خود کار کنید.

🔸استفاده از این روش جدید، مدیریت Middlewareها در لاراول 11 را بسیار روان‌تر می‌کند.




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

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