PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / trunk
Kubio AI Page Builder vtrunk
2.9.0 2.8.6 2.8.5 2.8.4 2.8.3 2.8.2 2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / vendor / symfony / property-info / PhpStan / NameScope.php
kubio / vendor / symfony / property-info / PhpStan Last commit date
NameScope.php 1 year ago NameScopeFactory.php 1 year ago
NameScope.php
66 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
12 namespace Symfony\Component\PropertyInfo\PhpStan;
13
14 /**
15 * NameScope class adapted from PHPStan code.
16 *
17 * @copyright Copyright (c) 2016, PHPStan https://github.com/phpstan/phpstan-src
18 * @copyright Copyright (c) 2016, Ondřej Mirtes
19 * @author Baptiste Leduc <baptiste.leduc@gmail.com>
20 *
21 * @internal
22 */
23 final class NameScope
24 {
25 private $calledClassName;
26 private $namespace;
27 /** @var array<string, string> alias(string) => fullName(string) */
28 private $uses;
29
30 public function __construct(string $calledClassName, string $namespace, array $uses = [])
31 {
32 $this->calledClassName = $calledClassName;
33 $this->namespace = $namespace;
34 $this->uses = $uses;
35 }
36
37 public function resolveStringName(string $name): string
38 {
39 if (0 === strpos($name, '\\')) {
40 return ltrim($name, '\\');
41 }
42
43 $nameParts = explode('\\', $name);
44 $firstNamePart = $nameParts[0];
45 if (isset($this->uses[$firstNamePart])) {
46 if (1 === \count($nameParts)) {
47 return $this->uses[$firstNamePart];
48 }
49 array_shift($nameParts);
50
51 return sprintf('%s\\%s', $this->uses[$firstNamePart], implode('\\', $nameParts));
52 }
53
54 if (null !== $this->namespace) {
55 return sprintf('%s\\%s', $this->namespace, $name);
56 }
57
58 return $name;
59 }
60
61 public function resolveRootClass(): string
62 {
63 return $this->resolveStringName($this->calledClassName);
64 }
65 }
66