git-svn-id: https://msi/svn/firstRepo/Service/branches/Slim3@40 0f545695-f87b-41b6-9a03-7f16563b5454
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?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 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 to bind the callable to.
|
||||
*/
|
||||
public function __invoke(App $app = null)
|
||||
{
|
||||
$callable = $this->resolveCallable($this->callable);
|
||||
if ($callable instanceof Closure && $app !== null) {
|
||||
$callable = $callable->bindTo($app);
|
||||
}
|
||||
|
||||
$callable();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user