1 | <?php |
||
30 | class HostPath |
||
31 | { |
||
32 | /** @var AliasRecord The alias record obtained from the host path */ |
||
33 | protected $alias_record; |
||
34 | |||
35 | /** @var string The entire original host path (e.g. @alias:/path) */ |
||
36 | protected $original_path; |
||
37 | |||
38 | /** @var string The "path" component from the host path */ |
||
39 | protected $path; |
||
40 | |||
41 | /** @var string The alias record is implicit (e.g. 'path' instead of '@self:path') */ |
||
42 | protected $implicit; |
||
43 | |||
44 | /** |
||
45 | * HostPath constructor |
||
46 | * |
||
47 | * @param AliasRecord $alias_record The alias record or site specification record |
||
48 | * @param string $original_path The original host path |
||
49 | * @param string $path Just the 'path' component |
||
50 | */ |
||
51 | protected function __construct($alias_record, $original_path, $path = '', $implicit = false) |
||
58 | |||
59 | /** |
||
60 | * Factory method to create a host path. |
||
61 | * |
||
62 | * @param SiteAliasManager $manager We need to be provided a reference |
||
63 | * to the alias manager to create a host path |
||
64 | * @param string $hostPath The path to create. |
||
65 | */ |
||
66 | public static function create(SiteAliasManager $manager, $hostPath) |
||
96 | |||
97 | /** |
||
98 | * Return the alias record portion of the host path. |
||
99 | * |
||
100 | * @return AliasRecord |
||
101 | */ |
||
102 | public function getAliasRecord() |
||
106 | |||
107 | /** |
||
108 | * Returns true if this host path points at a remote machine |
||
109 | * |
||
110 | * @return bool |
||
111 | */ |
||
112 | public function isRemote() |
||
116 | |||
117 | /** |
||
118 | * Return just the path portion, without considering the alias root. |
||
119 | * |
||
120 | * @return string |
||
121 | */ |
||
122 | public function getOriginalPath() |
||
126 | |||
127 | /** |
||
128 | * Return the original host path string, as provided to the create() method. |
||
129 | * |
||
130 | * @return string |
||
131 | */ |
||
132 | public function getOriginal() |
||
136 | |||
137 | /** |
||
138 | * Return just the path portion of the host path |
||
139 | * |
||
140 | * @return string |
||
141 | */ |
||
142 | public function getPath() |
||
152 | |||
153 | /** |
||
154 | * Returns 'true' if the path portion of the host path begins with a |
||
155 | * path alias (e.g. '%files'). Path aliases must appear at the beginning |
||
156 | * of the path. |
||
157 | * |
||
158 | * @return bool |
||
159 | */ |
||
160 | public function hasPathAlias() |
||
165 | |||
166 | /** |
||
167 | * Return just the path alias portion of the path (e.g. '%files'), or |
||
168 | * empty if there is no alias in the path. |
||
169 | * |
||
170 | * @return string |
||
171 | */ |
||
172 | public function getPathAlias() |
||
179 | |||
180 | /** |
||
181 | * Replaces the path alias portion of the path with the resolved path. |
||
182 | * |
||
183 | * @param string $resolvedPath The converted path alias (e.g. 'sites/default/files') |
||
184 | * @return $this |
||
185 | */ |
||
186 | public function replacePathAlias($resolvedPath) |
||
211 | |||
212 | /** |
||
213 | * Return the host portion of the host path, including the user. |
||
214 | * |
||
215 | * @return string |
||
216 | */ |
||
217 | public function getHost() |
||
221 | |||
222 | /** |
||
223 | * Return the fully resolved path, e.g. user@server:/path/to/drupalroot/sites/default/files |
||
224 | * |
||
225 | * @return string |
||
226 | */ |
||
227 | public function fullyQualifiedPath() |
||
235 | |||
236 | /** |
||
237 | * Our fully qualified path passes the result through Path::makeAbsolute() |
||
238 | * which canonicallizes the path, removing any trailing slashes. |
||
239 | * That is what we want most of the time; however, the trailing slash is |
||
240 | * sometimes significant, e.g. for rsync, so we provide a separate API |
||
241 | * for those cases where the trailing slash should be preserved. |
||
242 | * |
||
243 | * @return string |
||
244 | */ |
||
245 | public function fullyQualifiedPathPreservingTrailingSlash() |
||
253 | |||
254 | /** |
||
255 | * Helper method for HostPath::create(). When the host path contains no |
||
256 | * ':', this method determines whether the string that was provided is |
||
257 | * a host or a path. |
||
258 | * |
||
259 | * @param SiteAliasManager $manager |
||
260 | * @param AliasRecord|bool $alias_record |
||
261 | * @param string $hostPath |
||
262 | * @param string $single_part |
||
263 | */ |
||
264 | protected static function determinePathOrAlias(SiteAliasManager $manager, $alias_record, $hostPath, $single_part) |
||
278 | } |
||
279 |
This check looks for assignments to scalar types that may be of the wrong type.
To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.