首页 > 后端开发 > php教程 > Laravel 在测试、模型 ID 和授权方面的飞跃

Laravel 在测试、模型 ID 和授权方面的飞跃

Linda Hamilton
发布: 2025-01-14 07:44:43
原创
610 人浏览过

Laravel  A Leap Forward in Testing, Model IDs, and Authorization

领先的 PHP Web 应用程序框架 Laravel 刚刚发布了 11.30 版本,其中包含令人兴奋的新功能和改进,可提高开发人员的工作效率和代码灵活性。 让我们来探索一下关键更新。

使用新助手简化测试:withDefer()withoutDefer()

Laravel 11.30 引入了 withDefer()withoutDefer(),由 Tim MacDonald 提供。在使用延迟调用测试代码时,这些非常宝贵,允许您有选择地禁用延迟以实现精确的断言控制。

使用 withoutDefer() 的说明性示例:

<code class="language-php">// This won't work correctly
User::create(/* ... */);
$this->assertAgainstSomeDeferredOutcome();

// This works as intended
$this->withoutDefer();
User::create(/* ... */);
$this->assertAgainstSomeDeferredOutcome();</code>
登录后复制

这种对测试期间延迟操作的增强控制可以带来更可靠、更准确的测试结果。

具有 HasUniqueStringIds 特征的自定义唯一字符串 ID

Luke Kuzmish 的贡献,即 HasUniqueStringIds 特性,使开发人员能够利用自定义的唯一字符串 ID 作为路由键,而无需修改 resolveRouteBindingQuery()。 这扩展了现有的 HasUuidsHasUlid 特征,提供了更大的 ID 生成灵活性。

实现自定义唯一字符串 ID:

<code class="language-php">trait HasTwrnsTrait
{
    use HasUniqueStringIds;

    public function newUniqueId()
    {
        return (string) Twrn::new();
    }

    protected function isValidKey($value): bool
    {
        return Twrn::isValid($value);
    }
}</code>
登录后复制

此功能允许高度定制的模型标识符,同时与标准 Laravel 实践无缝集成。

通过直接枚举支持增强授权

Johan van Helden 对 AuthorizesRequests 特性的更新现在直接接受支持的枚举,与 Laravel 最近在整个框架范围内拥抱枚举相一致。

通过 authorize() 方法使用枚举:

<code class="language-php">enum DashboardPermission: string
{
    case VIEW = 'dashboard.view';
}

// Previously
public function index(): Response
{
    $this->authorize(DashboardPermission::VIEW->value);
    // ...
}

// Now
public function index(): Response
{
    $this->authorize(DashboardPermission::VIEW);
    // ...
}</code>
登录后复制

这种简化提高了授权代码的类型安全性和可读性。

其他重大增强

版本 11.30 还包括:

  • 使用 Blade::directive 参数扩展了 $bind 功能。
  • 解决了包含 trans_choice() 分隔符的翻译替换的 | 问题。
  • 特定场景下使用exists()代替count()进行性能优化。
  • 添加了对自定义 Postgres 运算符的支持。
  • 引入了向量列类型的可选维度。
  • 改进了 PostTooLargeException 的错误消息传递。
  • 修复了有关 failed_jobs_uuid_unique 的完整性约束违规。

Laravel 11.30 强调了该框架致力于持续改进和开发人员体验。 通过精细的测试、灵活的模型 ID 和简化的基于 Enum 的授权,此版本为开发人员提供了强大的新工具,用于编写更清晰、更高效的代码。 Laravel 仍然是 PHP 开发人员构建健壮且功能丰富的 Web 应用程序的首选。

准备好利用 Laravel 来提升您的业务了吗? 今天就联系我们。

以上是Laravel 在测试、模型 ID 和授权方面的飞跃的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板