제거 프로세스의 일부는 다음과 setup/src/Magento/Setup/Model/ModuleUninstaller.php
같습니다.
public function uninstallCode(OutputInterface $output, array $modules)
{
$output->writeln('<info>Removing code from Magento codebase:</info>');
$packages = [];
/** @var \Magento\Framework\Module\PackageInfo $packageInfo */
$packageInfo = $this->objectManager->get('Magento\Framework\Module\PackageInfoFactory')->create();
foreach ($modules as $module) {
$packages[] = $packageInfo->getPackageName($module);
}
$this->remove->remove($packages);
}
기본적으로 제거 할 패키지를 나열한 후 다음을 composer remove
통해 해당 패키지 에서 명령 을 실행합니다 lib/internal/Magento/Framework/Composer/Remove.php
.
public function remove(array $packages)
{
$composerApplication = $this->composerApplicationFactory->create();
return $composerApplication->runComposerCommand(
[
'command' => 'remove',
'packages' => $packages
]
);
}
runComposerCommand
방법은 vendor/magento/composer/src/MagentoComposerApplication.php
다음 에서 찾을 수 있습니다 .
public function runComposerCommand(array $commandParams, $workingDir = null)
{
$this->consoleApplication->resetComposer();
if ($workingDir) {
$commandParams[self::COMPOSER_WORKING_DIR] = $workingDir;
} else {
$commandParams[self::COMPOSER_WORKING_DIR] = dirname($this->composerJson);
}
$input = $this->consoleArrayInputFactory->create($commandParams);
$exitCode = $this->consoleApplication->run($input, $this->consoleOutput);
if ($exitCode) {
throw new \RuntimeException(
sprintf('Command "%s" failed: %s', $commandParams['command'], $this->consoleOutput->fetch())
);
}
return $this->consoleOutput->fetch();
}
나에게 여기에 어떤 일이 발생하고 그 기능은 디버깅을 시작 해야하는 곳입니다.
모듈 composer.json
파일이 없거나 오류가있을 수 있습니다.