Chris@0
|
1 <?php
|
Chris@0
|
2 namespace Composer\Installers;
|
Chris@0
|
3
|
Chris@0
|
4 /**
|
Chris@0
|
5 * Plugin/theme installer for shopware
|
Chris@0
|
6 * @author Benjamin Boit
|
Chris@0
|
7 */
|
Chris@0
|
8 class ShopwareInstaller extends BaseInstaller
|
Chris@0
|
9 {
|
Chris@0
|
10 protected $locations = array(
|
Chris@0
|
11 'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/',
|
Chris@0
|
12 'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/',
|
Chris@0
|
13 'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/',
|
Chris@0
|
14 'theme' => 'templates/{$name}/',
|
Chris@0
|
15 'plugin' => 'custom/plugins/{$name}/',
|
Chris@0
|
16 'frontend-theme' => 'themes/Frontend/{$name}/',
|
Chris@0
|
17 );
|
Chris@0
|
18
|
Chris@0
|
19 /**
|
Chris@0
|
20 * Transforms the names
|
Chris@0
|
21 * @param array $vars
|
Chris@0
|
22 * @return array
|
Chris@0
|
23 */
|
Chris@0
|
24 public function inflectPackageVars($vars)
|
Chris@0
|
25 {
|
Chris@0
|
26 if ($vars['type'] === 'shopware-theme') {
|
Chris@0
|
27 return $this->correctThemeName($vars);
|
Chris@0
|
28 }
|
Chris@12
|
29
|
Chris@12
|
30 return $this->correctPluginName($vars);
|
Chris@0
|
31 }
|
Chris@0
|
32
|
Chris@0
|
33 /**
|
Chris@0
|
34 * Changes the name to a camelcased combination of vendor and name
|
Chris@0
|
35 * @param array $vars
|
Chris@0
|
36 * @return array
|
Chris@0
|
37 */
|
Chris@0
|
38 private function correctPluginName($vars)
|
Chris@0
|
39 {
|
Chris@0
|
40 $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
|
Chris@0
|
41 return strtoupper($matches[0][1]);
|
Chris@0
|
42 }, $vars['name']);
|
Chris@0
|
43
|
Chris@0
|
44 $vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName);
|
Chris@0
|
45
|
Chris@0
|
46 return $vars;
|
Chris@0
|
47 }
|
Chris@0
|
48
|
Chris@0
|
49 /**
|
Chris@0
|
50 * Changes the name to a underscore separated name
|
Chris@0
|
51 * @param array $vars
|
Chris@0
|
52 * @return array
|
Chris@0
|
53 */
|
Chris@0
|
54 private function correctThemeName($vars)
|
Chris@0
|
55 {
|
Chris@0
|
56 $vars['name'] = str_replace('-', '_', $vars['name']);
|
Chris@0
|
57
|
Chris@0
|
58 return $vars;
|
Chris@0
|
59 }
|
Chris@0
|
60 }
|