Mercurial > hg > isophonics-drupal-site
comparison vendor/phpdocumentor/reflection-common/src/Fqsen.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
11:bfffd8d7479a | 12:7a779792577d |
---|---|
1 <?php | |
2 /** | |
3 * phpDocumentor | |
4 * | |
5 * PHP Version 5.5 | |
6 * | |
7 * @copyright 2010-2015 Mike van Riel / Naenius (http://www.naenius.com) | |
8 * @license http://www.opensource.org/licenses/mit-license.php MIT | |
9 * @link http://phpdoc.org | |
10 */ | |
11 | |
12 namespace phpDocumentor\Reflection; | |
13 | |
14 /** | |
15 * Value Object for Fqsen. | |
16 * | |
17 * @link https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc-meta.md | |
18 */ | |
19 final class Fqsen | |
20 { | |
21 /** | |
22 * @var string full quallified class name | |
23 */ | |
24 private $fqsen; | |
25 | |
26 /** | |
27 * @var string name of the element without path. | |
28 */ | |
29 private $name; | |
30 | |
31 /** | |
32 * Initializes the object. | |
33 * | |
34 * @param string $fqsen | |
35 * | |
36 * @throws \InvalidArgumentException when $fqsen is not matching the format. | |
37 */ | |
38 public function __construct($fqsen) | |
39 { | |
40 $matches = array(); | |
41 $result = preg_match( | |
42 '/^\\\\([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff\\\\]*)?(?:[:]{2}\\$?([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*))?(?:\\(\\))?$/', | |
43 $fqsen, | |
44 $matches | |
45 ); | |
46 | |
47 if ($result === 0) { | |
48 throw new \InvalidArgumentException( | |
49 sprintf('"%s" is not a valid Fqsen.', $fqsen) | |
50 ); | |
51 } | |
52 | |
53 $this->fqsen = $fqsen; | |
54 | |
55 if (isset($matches[2])) { | |
56 $this->name = $matches[2]; | |
57 } else { | |
58 $matches = explode('\\', $fqsen); | |
59 $this->name = trim(end($matches), '()'); | |
60 } | |
61 } | |
62 | |
63 /** | |
64 * converts this class to string. | |
65 * | |
66 * @return string | |
67 */ | |
68 public function __toString() | |
69 { | |
70 return $this->fqsen; | |
71 } | |
72 | |
73 /** | |
74 * Returns the name of the element without path. | |
75 * | |
76 * @return string | |
77 */ | |
78 public function getName() | |
79 { | |
80 return $this->name; | |
81 } | |
82 } |