Advertisement
Guest User

Untitled

a guest
Aug 21st, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.76 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.  * This file is part of the Silex framework.
  5.  *
  6.  * (c) Fabien Potencier <fabien@symfony.com>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11.  
  12. namespace Silex;
  13.  
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
  16.  
  17. /**
  18.  * Enables name_of_service:method_name syntax for declaring controllers.
  19.  *
  20.  * @link http://silex.sensiolabs.org/doc/providers/service_controller.html
  21.  */
  22. class ServiceControllerResolver implements ControllerResolverInterface
  23. {
  24.     protected $controllerResolver;
  25.     protected $callbackResolver;
  26.  
  27.     /**
  28.      * Constructor.
  29.      *
  30.      * @param ControllerResolverInterface $controllerResolver A ControllerResolverInterface instance to delegate to
  31.      * @param CallbackResolver            $callbackResolver   A service resolver instance
  32.      */
  33.     public function __construct(ControllerResolverInterface $controllerResolver, CallbackResolver $callbackResolver)
  34.     {
  35.         $this->controllerResolver = $controllerResolver;
  36.         $this->callbackResolver = $callbackResolver;
  37.     }
  38.  
  39.     /**
  40.      * {@inheritdoc}
  41.      */
  42.     public function getController(Request $request)
  43.     {
  44.         $controller = $request->attributes->get('_controller', null);
  45.  
  46.         if (!$this->callbackResolver->isValid($controller)) {
  47.             return $this->controllerResolver->getController($request);
  48.         }
  49.  
  50.         return $this->callbackResolver->convertCallback($controller);
  51.     }
  52.  
  53.     /**
  54.      * {@inheritdoc}
  55.      */
  56.     public function getArguments(Request $request, $controller)
  57.     {
  58.         return $this->controllerResolver->getArguments($request, $controller);
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement