According to Laravel 4 documentation.
Composer is:
View composers are callbacks or class methods that are called when a view is rendered. If you have data that you want bound to a given view each time that view is rendered throughout your application, a view composer can organize that code into a single location. Therefore, view composers may function like "view models" or "presenters".
View::composer('profile', function($view) { $view->with('count', User::count()); });
And
Creator is:
View creators work almost exactly like view composers; however, they are fired immediately when the view is instantiated. To register a view creator, simple use the creator method
View::creator('profile', function($view) { $view->with('count', User::count()); });
So the question is : What is the difference?
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.
It separates the application logic and the presentation logic. Views are stored in resources/views directory. Generally, the view contains the HTML which will be served by the application.
Loading a view in the controller is easy. You just need to add `view('viewname')` method while returning from the controller method. `view()` is a global helper in Laravel. In this method, you just need to pass the name of the view.
When you use View::creator
you have the chance to override the variables of view in the controller. Like this:
View::creator('layout', function($view) { $view->with('foo', 'bar'); }); // in controller return View::make('layout')->with('foo', 'not bar at all'); // it's defined as 'not bar at all' in the view
-
View::composer('hello', function($view) { $view->with('foo', 'bar'); }); // in controller return View::make('hello')->with('foo', 'not bar at all'); // it's defined as 'bar' in the view
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With