milfs/rest/vendor/slim/slim/Slim/RouteGroup.php
2018-10-13 12:01:33 -05:00

48 lines
1.2 KiB
PHP

<?php
/**
* Slim Framework (https://slimframework.com)
*
* @link https://github.com/slimphp/Slim
* @copyright Copyright (c) 2011-2017 Josh Lockhart
* @license https://github.com/slimphp/Slim/blob/3.x/LICENSE.md (MIT License)
*/
namespace Slim;
use Closure;
use Slim\Interfaces\RouteGroupInterface;
/**
* A collector for Routable objects with a common middleware stack
*
* @package Slim
*/
class RouteGroup extends Routable implements RouteGroupInterface
{
/**
* Create a new RouteGroup
*
* @param string $pattern The pattern prefix for the group
* @param callable $callable The group callable
*/
public function __construct($pattern, $callable)
{
$this->pattern = $pattern;
$this->callable = $callable;
}
/**
* Invoke the group to register any Routable objects within it.
*
* @param App $app The App instance to bind/pass to the group callable
*/
public function __invoke(App $app = null)
{
$callable = $this->resolveCallable($this->callable);
if ($callable instanceof Closure && $app !== null) {
$callable = $callable->bindTo($app);
}
$callable($app);
}
}