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