Commit e70261e9 authored by Taylor Otwell's avatar Taylor Otwell

added support for controller factories.

parent 86fa5953
...@@ -83,7 +83,7 @@ class Event { ...@@ -83,7 +83,7 @@ class Event {
{ {
foreach (static::$events[$event] as $callback) foreach (static::$events[$event] as $callback)
{ {
$responses[] = call_user_func_array($callback, $parameters); $responses[] = call_user_func_array($callback, (array) $parameters);
} }
} }
......
...@@ -39,6 +39,13 @@ abstract class Controller { ...@@ -39,6 +39,13 @@ abstract class Controller {
*/ */
protected $filters = array(); protected $filters = array();
/**
* The event name for the Laravel controller factory.
*
* @var string
*/
const factory = 'laravel.controller.factory';
/** /**
* Call an action method on a controller. * Call an action method on a controller.
* *
...@@ -127,12 +134,19 @@ abstract class Controller { ...@@ -127,12 +134,19 @@ abstract class Controller {
return IoC::resolve($resolver); return IoC::resolve($resolver);
} }
$controller = static::format($bundle, $controller);
// If we couldn't resolve the controller out of the IoC container we'll // If we couldn't resolve the controller out of the IoC container we'll
// format the controller name into its proper class name and load it // format the controller name into its proper class name and load it
// by convention out of the bundle's controller directory. // by convention out of the bundle's controller directory.
$controller = static::format($bundle, $controller); if (Event::listeners(static::factory))
{
$controller = new $controller; $controller = Event::first(static::factory, $controller);
}
else
{
$controller = new $controller;
}
// If the controller has specified a layout to be used when rendering // If the controller has specified a layout to be used when rendering
// views, we will instantiate the layout instance and set it to the // views, we will instantiate the layout instance and set it to the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment