登录  /  注册
首页 > php框架 > Laravel > 正文

Laravel 8.77发布,这些功能被改进了!

藏色散人
发布: 2022-01-20 16:59:50
转载
2008人浏览过

下面由laravel/" target="_blank">laravel教程栏目给大家介绍《laravel 8.77发布,这些功能被改进了》,希望对大家有所帮助!

Laravel 团队发布了 8.77 版本 ,其中改进了属性转换/访问器,请求 date() 方法以 DateTime 实例访问数据,MAC 地址验证,在存储磁盘上定义自定义临时 URL 的能力,以及 v8.x 中的最新更改分支。【推荐:《laravel视频教程》】

属性转换/访问器改进

Taylor Otwell 提供了一种定义属性访问器和修改器的新方法:

// 之前, 两个方法的方式
public function setTitleAttribute($value)
{
    $this->attributes['title'] = strtolower($value);
}
 // 新的方式
protected function title(): Attribute
{
    return new Attribute(
        set: fn ($value) => strtolower($value),
    );
}
登录后复制

这里有一个例子同时有 get 和 set 的实现:

/**
 * 获取用户的标题
 */
protected function title(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => strtolower($value),
    );
}
登录后复制

要了解更多信息,请查看关于此功能的 pull request 以及关于此功能的描述和讨论。

已将日期时间解析添加到请求实例

@Italo 为请求实例提供了一个date()方法,使得从请求数据获取日期实例变得非常方便:

// 以前
if ($date = $request->input('when')) {
    $date = Carbon::parse($datetime);
}
// 之后
$date = $request->date('when');
登录后复制

每个连接的前缀

Ben Tidy 有助于在Predi的每个连接基础上使用前缀。以下是Redis配置的pull请求的示例:

'redis' => [
    'client' => env('REDIS_CLIENT', 'predis'),
     'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
        'prefix' => env('REDIS_PREFIX', 'prefix:'),
    ],
     'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
        'prefix' => env('REDIS_PREFIX', 'prefix2:'),
    ],
],
登录后复制

MAC 地址验证规则

Bilal Al-Massry 贡献了 mac_address 验证规则, 用于验证 MAC 地址:

$trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => 'foo'], ['mac' => 'mac_address']);
$this->assertFalse($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-ab'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-AB'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());
登录后复制

定义存储的临时 URL 方法

Ash Allen 贡献了为 Storage 门面定义自定义临时URL逻辑的能力。 以下是拉取请求的几个示例:

Storage::disk('local')
    ->buildTemporaryUrlUsing(function ($path, $expiration, $options) {
      return 'using local';
    });
 // $url is: 'using local'
$url = Storage::temporaryUrl('file.jpg', now()->addMinutes(5));
登录后复制

发行说明

您可以在 github 上看到以下新功能和更新的完整列表以及 8.76.0 and 8.77.0 之间的差异。 以下发行说明直接来自 变更日志:

v8.77.0

新增

  • 属性转换 / 访问器改进 (#40022)
  • 新增 Illuminate/View/Factory::renderUnless() (#40077)
  • 向 Request 实例添加日期时间解析 (#39945)
  • 使每个连接都可以在 Predis 上使用前缀 (#40083)
  • 添加了验证 MAC 地址的规则 (#40098)
  • 添加了为存储定义临时 URL 的功能 (#40100)

已修复

  • 修复 Redis 驱动程序中通过引用 key 从缓存中删除 values 时可能出现的内存不足错误 (#40039)
  • 新增 Illuminate/Filesystem/FilesystemManager::setApplication() (#40058)
  • 修复在 doesntContain() 方法的参数传递 (739d847)
  • 翻译 Enum 规则消息 (#40089)
  • 修复关于日期的验证 (#40088)
  • 在 PruneCommand.php 中不允许 models 和 except  一起使用 (f62fe66)

已更改

  • 通过 Eloquent\Query::explain 方法对 Query\Builder:explain 使用特定于数据库解释命令的功能  (#40075)

原文地址:https://laravel-news.com/laravel-8-77-0

译文地址:https://learnku.com/laravel/t/64602

以上就是Laravel 8.77发布,这些功能被改进了!的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:learnku网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号