تغییرات لاراول 11: گامی بزرگ به سوی سادگی، قدرت و انعطافپذیری
مقدمه:
لاراول 11، جدیدترین نسخه این فریمورک محبوب PHP، در تاریخ 6 فوریه 2024 منتشر شد. این نسخه با هدف سادهسازی ساختار، افزایش کارایی، ارتقای تجربه توسعهدهندگان و افزایش انعطافپذیری، مجموعهای از تغییرات و ویژگیهای جدید را ارائه میکند.
جدول محتواها
در این مقاله، به بررسی عمیقتر و دقیقتر مهمترین تغییرات لاراول 11 به همراه مثالهای عملی میپردازیم:
1. ساختار سادهتر در لاراول 11:
- حذف فایلهای پیکربندی در لاراول 11:
هدف:
کاهش تعداد فایلهای پیکربندی و سادهتر کردن فرآیند پیکربندی برنامه
تغییرات:
- حذف تعداد زیادی از فایلهای پیکربندی مانند
config/database.php
وconfig/app.php
- انتقال تنظیمات به هسته لاراول
- اضافه کردن امکان استفاده از دستور
config:publish
برای بازگرداندن پیکربندیهای خاص
مزیت:
- سادهتر شدن فرآیند پیکربندی برنامه
- کاهش احتمال خطا در پیکربندی
- افزایش خوانایی و فهمپذیری پیکربندی
دستور config:publish
:
هدف:
ارائه راهی برای بازگرداندن پیکربندیهای خاص از نسخههای قبلی لاراول
تغییرات:
- اضافه شدن دستور
config:publish
- امکان بازگرداندن پیکربندیهای خاص مانند
cache
وdatabase
مثال:
فرض کنید که میخواهید پیکربندی پیشفرض کش را به نسخه قبلی لاراول بازگردانید. برای این کار میتوانید از دستور زیر استفاده کنید:
php artisan config:publish cache
مزیت:
- حفظ compatibilidad با نسخههای قبلی لاراول
- امکان استفاده از پیکربندیهای دلخواه
2. ارتقای برنامهریزی وظایف:
- سادهتر و کارآمدتر:
هدف:
سادهسازی فرآیند برنامهریزی وظایف و افزایش کارایی آن
تغییرات:
- بازنویسی کامل سیستم برنامهریزی وظایف
- استفاده از رابط جدید و سادهتر
- افزایش کارایی و کاهش پیچیدگی
مثال:
در نسخههای قبلی لاراول، برای برنامهریزی یک وظیفه cron، باید از کلاس Kernel
استفاده میکردید. اما در لاراول 11، میتوانید از رابط جدید برنامهریزی وظایف استفاده کنید:
// برنامهریزی یک وظیفه برای اجرا هر 5 دقیقه
Schedule::command('my-command')->everyFiveMinutes();
مزیت:
- سادهتر شدن فرآیند برنامهریزی وظایف
- کاهش کد مورد نیاز برای برنامهریزی وظایف
- افزایش خوانایی و فهمپذیری برنامهریزی وظایف
- کد کمتر:
هدف:
کاهش کد مورد نیاز برای برنامهریزی وظایف
تغییرات:
- ارائه روشهای جدید برای برنامهریزی وظایف پیچیده
- استفاده از توابع و متدهای سادهتر
مثال:
با استفاده از رابط جدید برنامهریزی وظایف، میتوانید وظایف پیچیدهتر را با کد کمتری برنامهریزی کنید:
// برنامهریزی یک وظیفه برای اجرا در روز اول هر ماه
Schedule::command('my-command')->monthlyOn(1);
مزیت:
- کاهش کد مورد نیاز برای برنامهریزی وظایف
- افزایش سرعت توسعه برنامه
3. حذف API پیشفرض:
- تمرکز بر انعطافپذیری:
هدف:
افزایش انعطافپذیری توسعهدهندگان در انتخاب API مورد نظر خود
تغییرات:
- حذف API Laravel Passport از هسته لاراول
- ارائه امکان استفاده از APIهای مختلف مانند Laravel Sanctum، Passport و سایر کتابخانههای شخص ثالث
مزیت:
- افزایش انعطافپذیری توسعهدهندگان
- امکان انتخاب API مناسب با نیازهای پروژه
- کاهش وابستگی به یک API خاص
مثال:
با دستور زیر می توانید موارد مربوط به api را در لاراول 11 نصب و فعال سازی نمائید.
php artisan install:api
4. تغییرات در Middleware ها در لارول 11:
- انتقال به داخل فریمورک:
هدف:
سادهسازی ساختار Middlewareها و ارتقای کارایی آنها
تغییرات:
- انتقال Middleware های هستهای مانند
Auth
به داخل فریمورک - ارائه رابط جدید برای نوشتن Middleware های سفارشی
مثال:
Middleware Auth
که پیشتر در پوشه app/Http/Middleware
قرار داشت، حالا به داخل فریمورک منتقل شده است.
مزیت:
- سادهسازی ساختار Middleware ها
- افزایش کارایی Middleware ها
- کاهش احتمال خطا در نوشتن Middleware ها
- شخصیسازی و اضافه کردن Middleware:
هدف:
ارائه امکان شخصیسازی Middleware های هستهای و اضافه کردن Middleware های جدید
تغییرات:
- ارائه امکان شخصیسازی Middleware های هستهای مانند
Auth
- اضافه کردن دستور
make:middleware
برای ایجاد Middleware های جدید
مثال:
برای شخصیسازی می توانی به فایل bootstrap/app.php lvh[ui
->withMiddleware(function (Middleware $middleware) {
// در این قسمت می توانید Middleware های خود را مدیریت کنید
})
مزیت:
- امکان شخصیسازی Middleware ها بر اساس نیازهای پروژه
- افزایش انعطافپذیری در مدیریت ترافیک برنامه
5. پشتیبانی از PHP 8.3:
- نسخههای جدید PHP:
هدف:
ارائه پشتیبانی از جدیدترین نسخههای PHP و استفاده از ویژگیهای جدید آنها
تغییرات:
- اضافه شدن پشتیبانی از PHP 8.3
- امکان استفاده از ویژگیهای جدید PHP مانند JIT compiler و typed properties
مزیت:
- افزایش کارایی برنامه
- استفاده از جدیدترین ویژگیهای PHP
- ارتقای امنیت برنامه
6. برنامهریزی وظایف در لاراول 11
مقدمه:
برنامهریزی وظایف یکی از ویژگیهای مهم لاراول است که به شما امکان میدهد وظایف را به طور خودکار در زمانهای مشخص اجرا کنید. این ویژگی برای وظایفی که باید به طور دورهای اجرا شوند، مانند ارسال ایمیلهای روزانه یا بهروزرسانی پایگاه داده، بسیار مفید است.
تغییرات در برنامهریزی وظایف لاراول 11:
سیستم برنامهریزی وظایف در لاراول 11 به طور کامل بازنویسی شده و ارتقا یافته است. این تغییرات شامل موارد زیر میشود:
- رابط جدید: رابط جدید برنامهریزی وظایف سادهتر و کارآمدتر است.
- کارایی بیشتر: سیستم جدید برنامهریزی وظایف از نظر کارایی بهینهسازی شده است.
- قابلیتهای جدید: سیستم جدید برنامهریزی وظایف از قابلیتهای جدیدی مانند برنامهریزی وظایف بر اساس cron و برنامهریزی وظایف زنجیرهای پشتیبانی میکند.
مثال:
فرض کنید میخواهید یک وظیفه را برای ارسال ایمیل به کاربران هر روز صبح در ساعت 8 اجرا کنید. برای این کار میتوانید از کد زیر استفاده کنید:
Schedule::command('send-daily-email')->dailyAt('8:00');
در این مثال:
Schedule::command('send-daily-email')
وظیفهای را برای اجرا فرمانsend-daily-email
تعریف میکند.dailyAt('8:00')
وظیفه را برای اجرا هر روز صبح در ساعت 8 برنامهریزی میکند.
مزایای استفاده از برنامهریزی وظایف لاراول:
- اتوماسیون وظایف: برنامهریزی وظایف به شما امکان میدهد وظایف را به طور خودکار اجرا کنید و از انجام دستی آنها خلاص شوید.
- بهبود کارایی: با خودکار کردن وظایف، میتوانید زمان و منابع خود را صرف وظایف مهمتر کنید.
- کاهش خطا: با خودکار کردن وظایف، احتمال خطا در انجام آنها را کاهش میدهید.
نکات:
- برای برنامهریزی وظایف پیچیدهتر، میتوانید از توابع و متدهای مختلف رابط برنامهریزی وظایف استفاده کنید.
- برای اشکالزدایی وظایف برنامهریزی شده، میتوانید از Laravel Tinker استفاده کنید.
با استفاده از برنامهریزی وظایف لاراول، میتوانید وظایف خود را به طور خودکار و کارآمد اجرا کنید و از مزایای آن بهرهمند شوید.
در اینجا چند نمونه دیگر از برنامهریزی وظایف با لاراول 11 آورده شده است:
- برنامهریزی یک وظیفه برای بهروزرسانی پایگاه داده هر ساعت:
Schedule::command('update-database')->hourly();
- برنامهریزی یک وظیفه برای اجرا در روز اول هر ماه:
Schedule::command('my-command')->monthlyOn(1);
- برنامهریزی یک وظیفه برای اجرا در روزهای دوشنبه و پنجشنبه:
Schedule::command('my-command')->daysOfWeek([1, 4]);
- برنامهریزی یک وظیفه برای اجرا در 5 دقیقه آینده:
Schedule::command('my-command')->everyFiveMinutes();
- برنامهریزی یک وظیفه برای اجرا در 10 ثانیه آینده:
Schedule::command('my-command')->everyTenSeconds();
با استفاده از این مثالها، میتوانید وظایف خود را به طور خودکار و با انعطافپذیری بالا برنامهریزی کنید.
نتیجهگیری:
تغییرات لاراول 11 گامی بزرگ به سوی سادگی، قدرت و انعطافپذیری است. این نسخه با ارائه تغییرات و ویژگیهای جدید، به توسعهدهندگان کمک میکند تا برنامههای وب قدرتمند و کارآمدی را به سرعت و به آسانی توسعه
منبع: لاراول 11
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.