PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / vendor / prefixed / symfony / http-kernel / Controller / ContainerControllerResolver.php
matomo / app / vendor / prefixed / symfony / http-kernel / Controller Last commit date
ArgumentResolver 1 year ago ArgumentResolver.php 1 year ago ArgumentResolverInterface.php 2 years ago ArgumentValueResolverInterface.php 2 years ago ContainerControllerResolver.php 2 years ago ControllerReference.php 2 years ago ControllerResolver.php 1 year ago ControllerResolverInterface.php 2 years ago ErrorController.php 1 year ago TraceableArgumentResolver.php 2 years ago TraceableControllerResolver.php 2 years ago
ContainerControllerResolver.php
64 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
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 namespace Matomo\Dependencies\Symfony\Component\HttpKernel\Controller;
12
13 use Matomo\Dependencies\Psr\Container\ContainerInterface;
14 use Matomo\Dependencies\Psr\Log\LoggerInterface;
15 use Symfony\Component\DependencyInjection\Container;
16 /**
17 * A controller resolver searching for a controller in a psr-11 container when using the "service::method" notation.
18 *
19 * @author Fabien Potencier <fabien@symfony.com>
20 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
21 */
22 class ContainerControllerResolver extends ControllerResolver
23 {
24 protected $container;
25 public function __construct(ContainerInterface $container, ?LoggerInterface $logger = null)
26 {
27 $this->container = $container;
28 parent::__construct($logger);
29 }
30 protected function createController(string $controller)
31 {
32 if (1 === substr_count($controller, ':')) {
33 $controller = str_replace(':', '::', $controller);
34 trigger_deprecation('symfony/http-kernel', '5.1', 'Referencing controllers with a single colon is deprecated. Use "%s" instead.', $controller);
35 }
36 return parent::createController($controller);
37 }
38 /**
39 * {@inheritdoc}
40 */
41 protected function instantiateController(string $class)
42 {
43 $class = ltrim($class, '\\');
44 if ($this->container->has($class)) {
45 return $this->container->get($class);
46 }
47 try {
48 return parent::instantiateController($class);
49 } catch (\Error $e) {
50 }
51 $this->throwExceptionIfControllerWasRemoved($class, $e);
52 if ($e instanceof \ArgumentCountError) {
53 throw new \InvalidArgumentException(sprintf('Controller "%s" has required constructor arguments and does not exist in the container. Did you forget to define the controller as a service?', $class), 0, $e);
54 }
55 throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class.', $class), 0, $e);
56 }
57 private function throwExceptionIfControllerWasRemoved(string $controller, \Throwable $previous)
58 {
59 if ($this->container instanceof Container && isset($this->container->getRemovedIds()[$controller])) {
60 throw new \InvalidArgumentException(sprintf('Controller "%s" cannot be fetched from the container because it is private. Did you forget to tag the service with "controller.service_arguments"?', $controller), 0, $previous);
61 }
62 }
63 }
64