<?php namespace Composer\Installers; /** * Plugin/theme installer for majima * @author David Neustadt */ class MajimaInstaller extends BaseInstaller { /** @var array<string, string> */ protected $locations = array( 'plugin' => 'plugins/{$name}/', ); /** * Transforms the names * * @param array<string, string> $vars * @return array<string, string> */ public function inflectPackageVars(array $vars): array { return $this->correctPluginName($vars); } /** * Change hyphenated names to camelcase * * @param array<string, string> $vars * @return array<string, string> */ private function correctPluginName(array $vars): array { $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) { return strtoupper($matches[0][1]); }, $vars['name']); if (null === $camelCasedName) { throw new \RuntimeException('Failed to run preg_replace_callback: '.preg_last_error()); } $vars['name'] = ucfirst($camelCasedName); return $vars; } }