首頁 > 後端開發 > php教程 > 快速提示:將數據傳遞到視圖的便利hacks

快速提示:將數據傳遞到視圖的便利hacks

Lisa Kudrow
發布: 2025-02-14 08:35:12
原創
786 人瀏覽過

>本文探討了將數據從PHP控制器傳遞到樹枝模板的有效方法,重點是具有許多變量的情況。 傳遞大型關聯陣列的標準方法變得麻煩。 本文建議使用php的compact()函數和自定義輔助功能only_compact()簡化此過程。

Quick Tip: Convenience Hacks for Passing Data to Views

核心問題是將許多變量單獨傳遞到Twig之類的模板引擎的詳細性。 例如:

$user = 'user data';
$posts = 'posts';
$comments = 'comments';
// ... many more variables ...

$twig->render('author.page', [
    'user' => $user,
    'posts' => $posts,
    'comments' => $comments,
    // ... many more entries ...
]);
登入後複製

>這種方法變得難以管理,並有大量變量。 compact()>功能提供了更簡潔的解決方案:

>
$twig->render('author.page', compact('user', 'posts', 'comments')); // ...
登入後複製

但是,compact()需要明確列表所有>所需的變量。 本文介紹了一種更複雜的方法,使用get_defined_vars()>,array_diff()傳遞所有array_intersect_key()>變量> > 一個指定的子集。 這封裝在可重複使用的輔助函數中:

>
// Helpers.php
function only_compact($values, $keys) {
    $keys = array_diff(array_keys($values), $keys);
    return array_intersect_key($values, array_flip($keys));
}
登入後複製

only_compact()函數獲取所有定義的變量和變量列表來排除,返回一個僅包含其餘變量的數組。 示例用法:

$twig->render('author.page', only_compact(get_defined_vars(), ['counter', 'twig']));
登入後複製

這僅通過將這些變量僅指定為>排除來有效地管理大量變量。 與手動方法相比,黑火的性能測試可忽略不計的間接費用。

Quick Tip: Convenience Hacks for Passing Data to Views Quick Tip: Convenience Hacks for Passing Data to Views

>通過總結最佳實踐和有關數據傳遞到視圖的數據,涵蓋關聯陣列,對象,循環和常見的TWIG功能等主題的常見問題來結束。

應包括composer.json> "helpers.php">配置的部分,以使助手功能可用。 "files">

以上是快速提示:將數據傳遞到視圖的便利hacks的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板