首页 > 后端开发 > php教程 > 快速提示:将数据传递到视图的便利hacks

快速提示:将数据传递到视图的便利hacks

Lisa Kudrow
发布: 2025-02-14 08:35:12
原创
798 人浏览过

>本文探讨了将数据从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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板