git-svn-id: https://msi/svn/firstRepo/Service/branches/Slim3@40 0f545695-f87b-41b6-9a03-7f16563b5454

This commit is contained in:
2016-01-05 21:43:12 +00:00
parent 4318dd829f
commit 00d78a2ba8
46 changed files with 4960 additions and 32 deletions
+47
View File
@@ -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();
}
}