2 namespace TYPO3\ClassAliasLoader;
13 use Composer\IO\IOInterface;
14 use Composer\IO\NullIO;
15 use Composer\Package\PackageInterface;
28 'class-alias-maps' => null,
29 'always-add-alias-loader' =>
false,
30 'autoload-case-sensitivity' =>
true
42 public function __construct(PackageInterface $package, IOInterface
$IO = null)
44 $this->IO =
$IO ?:
new NullIO();
52 public function get($configKey)
54 if (empty($configKey)) {
55 throw new \InvalidArgumentException(
'Configuration key must not be empty', 1444039407);
58 $configKey = str_getcsv($configKey,
'.');
61 foreach ($configKey as $segment) {
62 if (array_key_exists($segment, $value)) {
64 $value = $value[$segment];
79 if (isset($extraConfig[
'typo3/class-alias-loader'][
'class-alias-maps'])) {
80 $this->config[
'class-alias-maps'] = (array)$extraConfig[
'typo3/class-alias-loader'][
'class-alias-maps'];
82 if (isset($extraConfig[
'typo3/class-alias-loader'][
'always-add-alias-loader'])) {
83 $this->config[
'always-add-alias-loader'] = (bool)$extraConfig[
'typo3/class-alias-loader'][
'always-add-alias-loader'];
85 if (isset($extraConfig[
'typo3/class-alias-loader'][
'autoload-case-sensitivity'])) {
86 $this->config[
'autoload-case-sensitivity'] = (bool)$extraConfig[
'typo3/class-alias-loader'][
'autoload-case-sensitivity'];
98 $extraConfig = $package->getExtra();
100 if (!isset($extraConfig[
'typo3/class-alias-loader'])) {
101 if (isset($extraConfig[
'helhum/class-alias-loader'])) {
102 $extraConfig[
'typo3/class-alias-loader'] = $extraConfig[
'helhum/class-alias-loader'];
103 $messages[] = sprintf(
104 '<warning>The package "%s" uses "helhum/class-alias-loader" section to define class alias maps, which is deprecated. Please use "typo3/class-alias-loader" instead!</warning>',
108 $extraConfig[
'typo3/class-alias-loader'] = array();
109 if (isset($extraConfig[
'class-alias-maps'])) {
110 $extraConfig[
'typo3/class-alias-loader'][
'class-alias-maps'] = $extraConfig[
'class-alias-maps'];
111 $messages[] = sprintf(
112 '<warning>The package "%s" uses "class-alias-maps" section on top level, which is deprecated. Please move this config below the top level key "typo3/class-alias-loader" instead!</warning>',
116 if (isset($extraConfig[
'autoload-case-sensitivity'])) {
117 $extraConfig[
'typo3/class-alias-loader'][
'autoload-case-sensitivity'] = $extraConfig[
'autoload-case-sensitivity'];
118 $messages[] = sprintf(
119 '<warning>The package "%s" uses "autoload-case-sensitivity" section on top level, which is deprecated. Please move this config below the top level key "typo3/class-alias-loader" instead!</warning>',
125 if (!empty($messages)) {
126 $this->IO->writeError($messages);