Code前端首页关于Code前端联系我们

Lara7号有哪些新特点?哪一方面更快、更强?

terry 2年前 (2023-09-25) 阅读数 53 #后端开发

Lara vel 7 中的新功能

  • Lara 或 Airlock
  • Zttp 适用于 HTTP 客户端
  • CORS 支持
  • 自定义 Eloquent 转换
  • 平滑的字符串操作可见存根
  • 查询时间传输编队
  • 多个帖子驱动程序
  • 新的 Artisan 命令

Lara vel 7 的改进

  • 改进的路由模型绑定
  • 更快地关闭数据库改进的 Markdown 邮件模板
  • 以及更多错误修复和改进。

Lara vel Airlock

Lara vel Airlock是API认证的官方软件包。提供简单的基于令牌的API身份验证、令牌发行、令牌功能、移动应用程序身份验证等。

用于 HTTP 客户端的 Zttp

使用 Zttp,向 API 发出 HTTP 请求将是一种更好、更干净的方式。

发布请求

<?php
use Illuminate\Support\Facades\Http;

$response = Http::post($url);

$response = Http::post($url, [
    'site' => 'Laravel Article',
]);

获取响应

$response = Http::get($url);
$response = Http::get($url,['foo'=>'bar']);

带请求标头

CO RS 支持

Lara vel 7 现在支持 CORS 输出来自网格(跨域资源共享)。你应该更清楚,每个开发者在API开发中都遇到过CORS问题。 Laravel 7 现在使用配置值自动响应 OPTION 请求。 Laravel 7 附带 HandleCors 开箱即用的中间件,可以处理所有事情。

自定义雄辩演员

Lara版本7中的自定义雄辩演员是另一个很酷的功能。此功能将允许您添加自定义演员表。让我们看一下 JSON Caster。

<?php

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;

class Json implements CastsAttributes
{
    public function get($model, $key, $value, $attributes)
    {
        return json_decode($value, true);
    }

    public function set($model, $key, $value, $attributes)
    {
        return json_encode($value);
    }
}

现在我们可以在模型中使用自定义的 eloquent 演员阵容。

<?php

namespace App;

use App\Casts\Json;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{

    protected $casts = [
        'extra' => Json::class,
    ];
}

平滑的字符串操作

在 Laravel 7 中,您可以使用 Illuminate\Support\Str 类在面向对象方面做得更好。

$currentVersion = (string) Str::of('  Laravel 6.x ');
return $currentVersion->trim()
        ->replace('6.x', '7.x')
        ->slug();

// laravel-7x

Blade X

Lara vel 7 Blade X 功能允许您创建无类组件。

生成 x 组件

@php($user = $user ?? Auth::user())
@php($size = $size ?? 50)

<img
    class="inline-block rounded-full"
    
    width="{{ $size }}"
    height="{{ $size }}"
/>

刀片 x 用法

<x-avatar/>
<x-avatar size="40" />
<x-avatar size="100" />

自定义存根

查询时间转换

Lara提供了vel 7的方法。 withCasts 可帮助您在执行查询时确定值。让我们举个例子。

$users = User::select([
    'users.*',
    'last_posted_at' => Post::selectRaw('MAX(created_at)')->whereColumn('user_id', 'users.id')
])
->withCasts(['last_posted_at' => 'date'])
->get();

多个邮件驱动程序

Lara vel 7 将允许您使用单个应用程序设置多个邮件驱动程序。

Mail::mailer('noreply')
        ->to($request->user())
        ->send(new PostUpdated($post));

新的 Artisan 命令

为 Lara vel 7 添加了新的 artisan 测试命令。新的 artisan 测试命令提供了漂亮的用户体验和有关测试的有用信息。

php artisan test

在 Lara 版本 7 中进行了改进

  • 绑定改进的路由模型
  • 2 倍更快的路由
  • 数据库队列改进 ♼ ♼ 更多电子邮件修复和改进。

改进的路由模型绑定

自定义键

默认情况下,路由模型绑定可与 id 字段一起使用。现在您可以管理它了。

Route::get('posts/{post:slug}', function (App\Post $post) {
    return $post;
});

自动范围界定

Lara vel 7 将使用识别程序中识别关系调用约定的方法自动确定查询范围以检索嵌套模型。

use App\Post;
use App\User;

Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) {
    return $post;
});

2 倍更快的路由

使用路由时,Lara vel 7 的路由匹配性能比 Laravel 6 快 2 倍:缓存

数据库队列改进 数据库 ♿Laravel 6 和 MySQL 队列 ♿ 8 +应用队列支持作为数据库得到了改进。

改进的电子邮件 Markdown 模板

电子邮件的默认 Markdown 模板使用 Tailwind CSS 调色板具有更新的外观。可以根据需要发布和定制模板。

作者:summerbluet

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门