gpt4 book ai didi

php - Laravel:View::share() 和 View::composer() 之间的区别

转载 作者:可可西里 更新时间:2023-11-01 12:27:46 26 4
gpt4 key购买 nike

关于问题Passing default variables to view , 要在所有 View 之间传递可用变量,使用 View::composer() 之间是否存在技术或功能差异:

View::composer('*', function($view) {
$thundercats = 'Woooooohh!!';
$view->with('thundercats', $thundercats);
})

filters.php 文件中或在 BaseController.php 文件中使用 View::share():

public function __construct {
$thundercats = 'Woooooohh!!';
View::share('thundercats', $thundercats);
}

我最近才了解 View::share() 并发现它非常有趣,尽管我已经开始在另一个项目中使用前者。

编辑:

我的第一个假设是前者是一个文件 (filters.php),而后者是一个类 (BaseController.php)。考虑到这一点,我猜上课会好得多吗?虽然,我不太清楚为什么在这一点上。 :)

最佳答案

从技术上讲,它们完全不同。 View::share 只是设置一个变量,而 View::composer 是一个回调函数。

让我更详细地解释一下:

View::share真的很简单,它设置了一个可以在任何 View 中使用的变量,可以把它想象成一个全局变量。

View::composer注册一个在呈现 View 时调用的事件,不要将它与 View::creator 混淆在实例化 View 时触发。

View::composer/View::creator 都可以用作 well documented 的类.

虽然这些使您能够将额外的数据传递给 View ,但它们也使您能够做很多其他事情,例如它们可以:

  • 协助调试 View
  • 记录有关 View 的信息
  • 用于创建自定义缓存(可能不是一个好主意,但有可能)

这些只是使用 View::composerView::creator 可以实现的一些例子。

关于php - Laravel:View::share() 和 View::composer() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com