PluginProbe
Code Snippets / 3.10.0
Code Snippets v3.10.0
4.0.0-beta.2 3.10.2 3.10.1 3.10.0 3.10.0-beta.2 3.10.0-beta.1 4.0.0-beta.1 3.9.6 trunk 2.10.0 2.10.1 2.12.0 2.12.1 2.13.0 2.13.1 2.13.2 2.13.3 2.14.0 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 2.14.6 3.0.0 All 65 releases
code-snippets / vendor / composer / installers / src / Composer / Installers / WinterInstaller.php

WinterInstaller.php in Code Snippets 3.10.0, at vendor/composer/installers/src/Composer/Installers/WinterInstaller.php

72 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Composer\Installers;
4
5 class WinterInstaller extends BaseInstaller
6 {
7 /** @var array<string, string> */
8 protected $locations = array(
9 'module' => 'modules/{$name}/',
10 'plugin' => 'plugins/{$vendor}/{$name}/',
11 'theme' => 'themes/{$name}/'
12 );
13
14 /**
15 * Format package name.
16 *
17 * For package type winter-plugin, cut off a trailing '-plugin' if present.
18 *
19 * For package type winter-theme, cut off a trailing '-theme' if present.
20 */
21 public function inflectPackageVars(array $vars): array
22 {
23 if ($vars['type'] === 'winter-module') {
24 return $this->inflectModuleVars($vars);
25 }
26
27 if ($vars['type'] === 'winter-plugin') {
28 return $this->inflectPluginVars($vars);
29 }
30
31 if ($vars['type'] === 'winter-theme') {
32 return $this->inflectThemeVars($vars);
33 }
34
35 return $vars;
36 }
37
38 /**
39 * @param array<string, string> $vars
40 * @return array<string, string>
41 */
42 protected function inflectModuleVars(array $vars): array
43 {
44 $vars['name'] = $this->pregReplace('/^wn-|-module$/', '', $vars['name']);
45
46 return $vars;
47 }
48
49 /**
50 * @param array<string, string> $vars
51 * @return array<string, string>
52 */
53 protected function inflectPluginVars(array $vars): array
54 {
55 $vars['name'] = $this->pregReplace('/^wn-|-plugin$/', '', $vars['name']);
56 $vars['vendor'] = $this->pregReplace('/[^a-z0-9_]/i', '', $vars['vendor']);
57
58 return $vars;
59 }
60
61 /**
62 * @param array<string, string> $vars
63 * @return array<string, string>
64 */
65 protected function inflectThemeVars(array $vars): array
66 {
67 $vars['name'] = $this->pregReplace('/^wn-|-theme$/', '', $vars['name']);
68
69 return $vars;
70 }
71 }
72