Решил сделать в экстеншене в autoload конструкцию наподобии
Код: Выделить всё
"autoload": {
"psr-4": {
"g\\": ["test/", "libraries/"],
"gecon\\": ""
}
}
Сделал, запустил, а оно мне рожает ошибку:
Код: Выделить всё
[ErrorException]
substr() expects parameter 1 to be string, array given
Код: Выделить всё
Exception trace:
() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:392
Composer\Util\ErrorHandler::handle() at n/a:n/a
substr() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:392
Composer\Util\Filesystem->isAbsolutePath() at /server/webroot/xp/orion-pax-2-admin/application/vendor/yiisoft/yii2-composer/Installer.php:125
yii\composer\Installer->generateDefaultAlias() at /server/webroot/xp/orion-pax-2-admin/application/vendor/yiisoft/yii2-composer/Installer.php:85
yii\composer\Installer->addPackage() at /server/webroot/xp/orion-pax-2-admin/application/vendor/yiisoft/yii2-composer/Installer.php:42
yii\composer\Installer->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:152
Composer\Installer\InstallationManager->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:139
Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:572
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:222
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:130
Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:874
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:146
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:83
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
require() at /usr/local/bin/composer:24
Код: Выделить всё
Composer\Util\Filesystem->isAbsolutePath() at /server/webroot/xp/orion-pax-2-admin/application/vendor/yiisoft/yii2-composer/Installer.php:125
Код: Выделить всё
foreach ($autoload['psr-4'] as $name => $path) {
if(is_array($path)) {
foreach($path as $pathSingle) {
$name = str_replace('\\', '/', trim($name, '\\'));
if (!$fs->isAbsolutePath($pathSingle)) {
$pathSingle = $this->vendorDir . '/' . $package->getPrettyName() . '/' . $pathSingle;
}
$pathSingle = $fs->normalizePath($pathSingle);
if (strpos($pathSingle . '/', $vendorDir . '/') === 0) {
$aliases["@$name"] = '<vendor-dir>' . substr($pathSingle, strlen($vendorDir));
} else {
$aliases["@$name"] = $pathSingle;
}
}
} else {
$name = str_replace('\\', '/', trim($name, '\\'));
if (!$fs->isAbsolutePath($path)) {
$path = $this->vendorDir . '/' . $package->getPrettyName() . '/' . $path;
}
$path = $fs->normalizePath($path);
if (strpos($path . '/', $vendorDir . '/') === 0) {
$aliases["@$name"] = '<vendor-dir>' . substr($path, strlen($vendorDir));
} else {
$aliases["@$name"] = $path;
}
}
}
Код: Выделить всё
print_r($aliases);
return $aliases;
Код: Выделить всё
Array
(
[@g] => <vendor-dir>/gex/yii2-gecon/libraries
[@gecon] => <vendor-dir>/gex/yii2-gecon
)
Код: Выделить всё
{
"autoload": {
"psr-4": { "Monolog\\": ["src/", "lib/"] }
}
}