Chris@18
|
1 <?php
|
Chris@18
|
2 namespace TYPO3\PharStreamWrapper\Resolver;
|
Chris@18
|
3
|
Chris@18
|
4 /*
|
Chris@18
|
5 * This file is part of the TYPO3 project.
|
Chris@18
|
6 *
|
Chris@18
|
7 * It is free software; you can redistribute it and/or modify it under the terms
|
Chris@18
|
8 * of the MIT License (MIT). For the full copyright and license information,
|
Chris@18
|
9 * please read the LICENSE file that was distributed with this source code.
|
Chris@18
|
10 *
|
Chris@18
|
11 * The TYPO3 project - inspiring people to share!
|
Chris@18
|
12 */
|
Chris@18
|
13
|
Chris@18
|
14 use TYPO3\PharStreamWrapper\Exception;
|
Chris@18
|
15
|
Chris@18
|
16 class PharInvocation
|
Chris@18
|
17 {
|
Chris@18
|
18 /**
|
Chris@18
|
19 * @var string
|
Chris@18
|
20 */
|
Chris@18
|
21 private $baseName;
|
Chris@18
|
22
|
Chris@18
|
23 /**
|
Chris@18
|
24 * @var string
|
Chris@18
|
25 */
|
Chris@18
|
26 private $alias;
|
Chris@18
|
27
|
Chris@18
|
28 /**
|
Chris@18
|
29 * @var bool
|
Chris@18
|
30 * @see \TYPO3\PharStreamWrapper\PharStreamWrapper::collectInvocation()
|
Chris@18
|
31 */
|
Chris@18
|
32 private $confirmed = false;
|
Chris@18
|
33
|
Chris@18
|
34 /**
|
Chris@18
|
35 * Arbitrary variables to be used by interceptors as registry
|
Chris@18
|
36 * (e.g. in order to avoid duplicate processing and assertions)
|
Chris@18
|
37 *
|
Chris@18
|
38 * @var array
|
Chris@18
|
39 */
|
Chris@18
|
40 private $variables;
|
Chris@18
|
41
|
Chris@18
|
42 /**
|
Chris@18
|
43 * @param string $baseName
|
Chris@18
|
44 * @param string $alias
|
Chris@18
|
45 */
|
Chris@18
|
46 public function __construct($baseName, $alias = '')
|
Chris@18
|
47 {
|
Chris@18
|
48 if ($baseName === '') {
|
Chris@18
|
49 throw new Exception(
|
Chris@18
|
50 'Base-name cannot be empty',
|
Chris@18
|
51 1551283689
|
Chris@18
|
52 );
|
Chris@18
|
53 }
|
Chris@18
|
54 $this->baseName = $baseName;
|
Chris@18
|
55 $this->alias = $alias;
|
Chris@18
|
56 }
|
Chris@18
|
57
|
Chris@18
|
58 /**
|
Chris@18
|
59 * @return string
|
Chris@18
|
60 */
|
Chris@18
|
61 public function __toString()
|
Chris@18
|
62 {
|
Chris@18
|
63 return $this->baseName;
|
Chris@18
|
64 }
|
Chris@18
|
65
|
Chris@18
|
66 /**
|
Chris@18
|
67 * @return string
|
Chris@18
|
68 */
|
Chris@18
|
69 public function getBaseName()
|
Chris@18
|
70 {
|
Chris@18
|
71 return $this->baseName;
|
Chris@18
|
72 }
|
Chris@18
|
73
|
Chris@18
|
74 /**
|
Chris@18
|
75 * @return null|string
|
Chris@18
|
76 */
|
Chris@18
|
77 public function getAlias()
|
Chris@18
|
78 {
|
Chris@18
|
79 return $this->alias;
|
Chris@18
|
80 }
|
Chris@18
|
81
|
Chris@18
|
82 /**
|
Chris@18
|
83 * @return bool
|
Chris@18
|
84 */
|
Chris@18
|
85 public function isConfirmed()
|
Chris@18
|
86 {
|
Chris@18
|
87 return $this->confirmed;
|
Chris@18
|
88 }
|
Chris@18
|
89
|
Chris@18
|
90 public function confirm()
|
Chris@18
|
91 {
|
Chris@18
|
92 $this->confirmed = true;
|
Chris@18
|
93 }
|
Chris@18
|
94
|
Chris@18
|
95 /**
|
Chris@18
|
96 * @param string $name
|
Chris@18
|
97 * @return mixed|null
|
Chris@18
|
98 */
|
Chris@18
|
99 public function getVariable($name)
|
Chris@18
|
100 {
|
Chris@18
|
101 if (!isset($this->variables[$name])) {
|
Chris@18
|
102 return null;
|
Chris@18
|
103 }
|
Chris@18
|
104 return $this->variables[$name];
|
Chris@18
|
105 }
|
Chris@18
|
106
|
Chris@18
|
107 /**
|
Chris@18
|
108 * @param string $name
|
Chris@18
|
109 * @param mixed $value
|
Chris@18
|
110 */
|
Chris@18
|
111 public function setVariable($name, $value)
|
Chris@18
|
112 {
|
Chris@18
|
113 $this->variables[$name] = $value;
|
Chris@18
|
114 }
|
Chris@18
|
115
|
Chris@18
|
116 /**
|
Chris@18
|
117 * @param PharInvocation $other
|
Chris@18
|
118 * @return bool
|
Chris@18
|
119 */
|
Chris@18
|
120 public function equals(PharInvocation $other)
|
Chris@18
|
121 {
|
Chris@18
|
122 return $other->baseName === $this->baseName
|
Chris@18
|
123 && $other->alias === $this->alias;
|
Chris@18
|
124 }
|
Chris@18
|
125 } |