ホームページ > バックエンド開発 > PHPチュートリアル > クイックヒント:ビューにデータを渡すための便利なハッキング

クイックヒント:ビューにデータを渡すための便利なハッキング

Lisa Kudrow
リリース: 2025-02-14 08:35:12
オリジナル
798 人が閲覧しました

この記事では、多数の変数がある状況に焦点を当てたPHPコントローラーからTwigテンプレートにデータを渡す効率的な方法を調査します。 大きな連想配列を通過する標準的な方法は、面倒になります。 この記事では、このプロセスを合理化するために、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));
}
ログイン後にコピー
これにより、

を除外する変数のみを指定することにより、多数の変数を効果的に管理します。 Blackfireを使用したパフォーマンステストは、手動の方法と比較して無視できる間接します。 only_compact()

$twig->render('author.page', only_compact(get_defined_vars(), ['counter', 'twig']));
ログイン後にコピー

この記事は、ベストプラクティスを要約し、ビューに合格するデータに関するよくある質問を要約し、連想配列、オブジェクト、ループ、および一般的な小枝関数などのトピックをカバーすることで締めくくります。 には、ヘルパー関数を使用できるように

構成の

>セクションの下に含める必要があります。

以上がクイックヒント:ビューにデータを渡すための便利なハッキングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート