annotate vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 7a779792577d
children
rev   line source
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 }