Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Routing;
4
 
5
use Illuminate\Container\Container;
6
use Illuminate\Routing\Contracts\CallableDispatcher as CallableDispatcherContract;
7
use ReflectionFunction;
8
 
9
class CallableDispatcher implements CallableDispatcherContract
10
{
11
    use RouteDependencyResolverTrait;
12
 
13
    /**
14
     * The container instance.
15
     *
16
     * @var \Illuminate\Container\Container
17
     */
18
    protected $container;
19
 
20
    /**
21
     * Create a new callable dispatcher instance.
22
     *
23
     * @param  \Illuminate\Container\Container  $container
24
     * @return void
25
     */
26
    public function __construct(Container $container)
27
    {
28
        $this->container = $container;
29
    }
30
 
31
    /**
32
     * Dispatch a request to a given callable.
33
     *
34
     * @param  \Illuminate\Routing\Route  $route
35
     * @param  callable  $callable
36
     * @return mixed
37
     */
38
    public function dispatch(Route $route, $callable)
39
    {
40
        return $callable(...array_values($this->resolveParameters($route, $callable)));
41
    }
42
 
43
    /**
44
     * Resolve the parameters for the callable.
45
     *
46
     * @param  \Illuminate\Routing\Route  $route
47
     * @param  callable  $callable
48
     * @return array
49
     */
50
    protected function resolveParameters(Route $route, $callable)
51
    {
52
        return $this->resolveMethodDependencies($route->parametersWithoutNulls(), new ReflectionFunction($callable));
53
    }
54
}