git-svn-id: https://msi/svn/firstRepo/Service/branches/Slim3@40 0f545695-f87b-41b6-9a03-7f16563b5454
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @link https://github.com/slimphp/Slim
|
||||
* @copyright Copyright (c) 2011-2015 Josh Lockhart
|
||||
* @license https://github.com/slimphp/Slim/blob/3.x/LICENSE.md (MIT License)
|
||||
*/
|
||||
namespace Slim;
|
||||
|
||||
use Closure;
|
||||
use Interop\Container\ContainerInterface;
|
||||
|
||||
/**
|
||||
* A routable, middleware-aware object
|
||||
*
|
||||
* @package Slim
|
||||
* @since 3.0.0
|
||||
*/
|
||||
abstract class Routable
|
||||
{
|
||||
use CallableResolverAwareTrait;
|
||||
|
||||
/**
|
||||
* Route callable
|
||||
*
|
||||
* @var callable
|
||||
*/
|
||||
protected $callable;
|
||||
|
||||
/**
|
||||
* Container
|
||||
*
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
/**
|
||||
* Route middleware
|
||||
*
|
||||
* @var callable[]
|
||||
*/
|
||||
protected $middleware = [];
|
||||
|
||||
/**
|
||||
* Route pattern
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $pattern;
|
||||
|
||||
/**
|
||||
* Get the middleware registered for the group
|
||||
*
|
||||
* @return callable[]
|
||||
*/
|
||||
public function getMiddleware()
|
||||
{
|
||||
return $this->middleware;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the route pattern
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPattern()
|
||||
{
|
||||
return $this->pattern;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set container for use with resolveCallable
|
||||
*
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setContainer(ContainerInterface $container)
|
||||
{
|
||||
$this->container = $container;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepend middleware to the middleware collection
|
||||
*
|
||||
* @param mixed $callable The callback routine
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function add($callable)
|
||||
{
|
||||
$callable = $this->resolveCallable($callable);
|
||||
if ($callable instanceof Closure) {
|
||||
$callable = $callable->bindTo($this->container);
|
||||
}
|
||||
|
||||
$this->middleware[] = $callable;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user