1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?php
/**
* Slim Framework (https://slimframework.com)
*
* @license https://github.com/slimphp/Slim/blob/3.x/LICENSE.md (MIT License)
*/
namespace Slim;
use Psr\Container\ContainerInterface;
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;
/**
* @param string $pattern
* @param callable $callable
*/
public function __construct($pattern, $callable)
{
$this->pattern = $pattern;
$this->callable = $callable;
}
/**
* 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 static
*/
public function setContainer(ContainerInterface $container)
{
$this->container = $container;
return $this;
}
/**
* Prepend middleware to the middleware collection
*
* @param callable|string $callable The callback routine
*
* @return static
*/
public function add($callable)
{
$this->middleware[] = new DeferredCallable($callable, $this->container);
return $this;
}
/**
* Set the route pattern
*
* @param string $newPattern
*/
public function setPattern($newPattern)
{
$this->pattern = $newPattern;
}
}
|