首頁 > 後端開發 > php教程 > Laravel 在測試、模型 ID 和授權方面的飛躍

Laravel 在測試、模型 ID 和授權方面的飛躍

Linda Hamilton
發布: 2025-01-14 07:44:43
原創
659 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板