تغییرات جدید لاراول 11.31

در این هفته لاراول ورژن 11.31 خودشو ریلیز کرد و در این ورژن تغییرات جالبی مثل Cache Token Repository، DB build و.. مشاهده میکنید.

Cache Token Repository

در این تغییر یک کلاس جدید به نام CacheTokenRepository که میتونه با کش (cache) ریست کردن رمز عبور اپلیکیشن شما انجام بده: 

'passwords' => [

    //new cache driver
    'customers' => [
        'driver'   => 'cache',
        'store'    => 'passwords',
        'provider' => 'customers',
        'expire'   => 60,
        'throttle' => 60,
    ],

    //default old database driver
    'users'     => [
        'provider' => 'users',
        'table'    =>'password_reset_tokens',
        'expire'   => 60,
        'throttle' => 60,
    ],
],

 برای دیدن این Pull Request کلیک کنید.

Mail::Build()

در آپدیت لاراول 11.31، یک امکان اضافه شد برای اینکه شما بخواید در لحظه یک تنظیمات درست کنید و دیگه از config استفاده نکنید تا حد امکان. این تغییر برای اینکه مثلا در یک جای از برنامه ممکنه یک چیزی نیاز دارید و دوست ندارید برید از روی کانفیگ بخونید و تغییر بدید این به کمک شما میاد:

use IlluminateSupportFacadesMail;

$mailer = Mail::build([
    'transport' => 'smtp',
    'host' => '127.0.0.1',
    'port' => 587,
    'encryption' => 'tls',
    'username' => 'usr',
    'password' => 'pwd',
    'timeout' => 5,
]);

$mailer->send($mailable);

 برای دیدن این Pull Request کلیک کنید.

DB::build()

این تغییر هم دقیقا مثل بخش بالا هست و شما برای دیتابیس هم میتونید این کار هم انجام بدید:

use IlluminateSupportFacadesDB;

$sqlite = DB::build([
    'driver' => 'sqlite',
    'database' => ':memory:',
]);

$mysql = DB::build([
    'driver' => 'mysql',
    'database' => 'forge',
    'username' => 'root',
    'password' => 'secret',
]);

$pgsql = DB::build([
    'driver' => 'pgsql',
    // ...
]);

$sqlsrv = DB::build([
    'driver' => 'sqlsrv',
    // ...
]);

 برای دیدن این Pull Request کلیک کنید.

Cache::build()

این تغییر هم دقیقا مثل بخش بالا هست و شما برای دیتابیس هم میتونید این کار هم انجام بدید:

use IlluminateSupportFacadesCache;

$apc = Cache::build([
    'driver' => 'apc',
]);

$array = Cache::build([
    'driver' => 'array',
    'serialize' => false,
]);

$database = Cache::build([
    'driver' => 'database',
    'table' => 'cache',
    'connection' => null,
    'lock_connection' => null,
]);

$file = Cache::build([
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),
]);

 برای دیدن این Pull Request کلیک کنید.

پشتیبانی از Enum ها در متد "()onQueue"

در آپدیت جدید لاراول شما میتونید یک enum به متد onQueue پاس بدید:

// Before
Bus::chain($jobs)
->onQueue(QueueName::long->value)->dispatch();
 
// After
Bus::chain($jobs)
->onQueue(QueueName::long)->dispatch();

 برای دیدن این Pull Request کلیک کنید.

اضافه شدن متد "removeDeferredServices()" به کلاس Application

در لاراول یک متد جدیدی اضافه شده که میتونید اون deferred سرویس ها پاک کنید:

Ability to Append and Prepend Middleware Priority from the Application Builder

در آپدیت جدید لاراول شما میتونید یک میدول ور به لاراول apeend یا prepend کنید. در واقع میتونید ترتیب اونها دستکاری کنید:

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->appendToPriorityList(
            [
                IlluminateCookieMiddlewareEncryptCookies::class,
                IlluminateContractsAuthMiddlewareAuthenticatesRequests::class,
            ],
            IlluminateRoutingMiddlewareValidateSignature::class
        );

        $middleware->prependToPriorityList(
            [
                IlluminateCookieMiddlewareEncryptCookies::class,
                IlluminateContractsAuthMiddlewareAuthenticatesRequests::class,
            ],
            IlluminateRoutingMiddlewareValidateSignature::class
        );
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

 برای دیدن این Pull Request کلیک کنید.

اضافه شدن متد "()forceHttps" به URL

این متد یک boolean میگیره و به آدرس های شما https اضافه میکنه:

URL::forceHttps(
    $this->app->isProduction()
);

URL::forceHttps(
    $this->app->environment('staging', 'production')
);

 برای دیدن این Pull Request کلیک کنید.

تغییرات جزئی:

  • ریفکتور کامند ها - #53354
  • اضافه کردن generic به transaction های دیتابیس - #53357
  • اضافه شدن صفحه پیشفرض ارور - #53353
  • اضافه شدن متد "()cascadeOnTrucate" به Postgres گرامر - #53343
  • فیکس کردن typo در کامنت ها - #53366
  • اضافه کردن قابلیت پاس دادن مقدار null به کلاس HtmlString ر - #53367
  • تقویت تست ها - #53408
  • اضافه کردن پیام ارور "SQLSTATE[25006]: Read only sql transaction: 7" برای کانکشن دیتابیس - #53404
  • جایگزین "whereFullText" به جای "whereFulltext" در الکوئنت - #53395
  • اضافه شدن تریت HasFactory به کامند ساخت مدل - #53391
  • اضافه شدن متد "()pop" به Context ها - #53403
  • تقویت تست ها - #53414
  • فیکس کردن event/listener ها در vite (ویت) - #53439
  • تقویت phpdoc برای روابط - #53335
  • فیکس کردن phpdoc متد "()diffKeys" در کالکشن ها - #53441
  • فیکس کردن phpdoc متد "()intersectByKeys" در کالکشن ها - #53444
  • فیکس کردن پیام اعتبارسنجی - #53416
  • اضافه کردن قابلیت افزودن prefix برای کش - #53448
  • ریفکتور تست ها - #53453

برای دیدن فایل changelog.md این ورژن کلیک کنید.

برای دیدن release این ورژن کلیک کنید.

0 🔥
1 🎉
1 😮
0 👍
0 💜
0 👏
میلاد خسروی
نویسنده کد نیوز

برنامه نویس فان | Fun Developer یک آدم ساده که عاشق برنامه نویسی و کد زدنه :) تلاش میکنه تا به بقیه کمک کنه. توسعه دهنده هسته لاراول و فضای اوپن سورس. فاندر پرانتز و کد نیوز.

0+ نظر

برای ثبت نظر ابتدا ورود کنید.

0 نظر

    اولین نفر باش که نظر ثبت میکنی :) یعنی یه کامنت به ما نمیرسه 😁