73 lines
1.6 KiB
PHP
73 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Routing;
|
|
|
|
use BadMethodCallException;
|
|
|
|
abstract class Controller
|
|
{
|
|
/**
|
|
* The middleware registered on the controller.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $middleware = [];
|
|
|
|
/**
|
|
* Register middleware on the controller.
|
|
*
|
|
* @param \Closure|array|string $middleware
|
|
* @param array $options
|
|
* @return \Illuminate\Routing\ControllerMiddlewareOptions
|
|
*/
|
|
public function middleware($middleware, array $options = [])
|
|
{
|
|
foreach ((array) $middleware as $m) {
|
|
$this->middleware[] = [
|
|
'middleware' => $m,
|
|
'options' => &$options,
|
|
];
|
|
}
|
|
|
|
return new ControllerMiddlewareOptions($options);
|
|
}
|
|
|
|
/**
|
|
* Get the middleware assigned to the controller.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getMiddleware()
|
|
{
|
|
return $this->middleware;
|
|
}
|
|
|
|
/**
|
|
* Execute an action on the controller.
|
|
*
|
|
* @param string $method
|
|
* @param array $parameters
|
|
* @return \Symfony\Component\HttpFoundation\Response
|
|
*/
|
|
public function callAction($method, $parameters)
|
|
{
|
|
return $this->{$method}(...array_values($parameters));
|
|
}
|
|
|
|
/**
|
|
* Handle calls to missing methods on the controller.
|
|
*
|
|
* @param string $method
|
|
* @param array $parameters
|
|
* @return mixed
|
|
*
|
|
* @throws \BadMethodCallException
|
|
*/
|
|
public function __call($method, $parameters)
|
|
{
|
|
throw new BadMethodCallException(sprintf(
|
|
'Method %s::%s does not exist.', static::class, $method
|
|
));
|
|
}
|
|
}
|