Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 399 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Routing;
4
 
5
use Illuminate\Contracts\Routing\ResponseFactory;
6
 
7
class ViewController extends Controller
8
{
9
    /**
10
     * The response factory implementation.
11
     *
12
     * @var \Illuminate\Contracts\Routing\ResponseFactory
13
     */
14
    protected $response;
15
 
16
    /**
17
     * Create a new controller instance.
18
     *
19
     * @param  \Illuminate\Contracts\Routing\ResponseFactory  $response
20
     * @return void
21
     */
22
    public function __construct(ResponseFactory $response)
23
    {
24
        $this->response = $response;
25
    }
26
 
27
    /**
28
     * Invoke the controller method.
29
     *
621 lars 30
     * @param  mixed  ...$args
148 lars 31
     * @return \Illuminate\Http\Response
32
     */
33
    public function __invoke(...$args)
34
    {
35
        $routeParameters = array_filter($args, function ($key) {
36
            return ! in_array($key, ['view', 'data', 'status', 'headers']);
37
        }, ARRAY_FILTER_USE_KEY);
38
 
39
        $args['data'] = array_merge($args['data'], $routeParameters);
40
 
41
        return $this->response->view(
42
            $args['view'],
43
            $args['data'],
44
            $args['status'],
45
            $args['headers']
46
        );
47
    }
48
 
49
    /**
50
     * Execute an action on the controller.
51
     *
52
     * @param  string  $method
53
     * @param  array  $parameters
54
     * @return \Symfony\Component\HttpFoundation\Response
55
     */
56
    public function callAction($method, $parameters)
57
    {
58
        return $this->{$method}(...$parameters);
59
    }
60
}