Laravel 中 View Composer 和 Helper 的区别?

Difference between View Composer and Helper in Laravel?

不知道有没有问过同样的问题。但是有人可以解释这 2 Laravel 功能之间的区别吗? & 何时使用哪一个?

在Laravel的上下文中,Helper是一个全局函数,可用于对数组、字符串等执行特定操作。对于例如,假设您需要对字符串进行 slugify:

$title = str_slug('Laravel 5 Framework', '-');

// laravel-5-framework

-- 使用 str_slug() 助手(函数)轻松完成。

View composers, 另一方面...

...are callbacks or class methods that are called when a view is rendered. If you have data that you want to be bound to a view each time that view is rendered, a view composer can help you organize that logic into a single location.

换句话说,它们不是简单的函数,而是当您需要确保变量(资源)在多个视图中可用时使用的框架结构。

例如,下面的代码将确保 每次 呈现 sidebar.blade.php 视图时,它都可以访问 $navigation 变量:

// Using Closure, within a Service Provider...

View::composer('sidebar', function ($view) {
    $navigation = array(/*...*/);
    $view->with('navigation', $navigation);
});

这意味着您只是集中了导航源,而不是从处理侧边栏页面的每个控制器传递导航项。