mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-10 21:22:21 +00:00
e1b8b2e468
81ba0c90bd
[Scoper] Remove PHPStanStubLoader: move to dedicated file to define native classes (#2249)
46 lines
2.2 KiB
PHP
46 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\Core\DependencyInjection;
|
|
|
|
use RectorPrefix20220507\Nette\Utils\FileSystem;
|
|
use RectorPrefix20220507\Psr\Container\ContainerInterface;
|
|
use Rector\Caching\Detector\ChangedFilesDetector;
|
|
use Rector\Core\Kernel\RectorKernel;
|
|
use Rector\Core\ValueObject\Bootstrap\BootstrapConfigs;
|
|
use RectorPrefix20220507\Symfony\Component\Console\Style\SymfonyStyle;
|
|
final class RectorContainerFactory
|
|
{
|
|
public function createFromBootstrapConfigs(\Rector\Core\ValueObject\Bootstrap\BootstrapConfigs $bootstrapConfigs) : \RectorPrefix20220507\Psr\Container\ContainerInterface
|
|
{
|
|
$container = $this->createFromConfigs($bootstrapConfigs->getConfigFiles());
|
|
$mainConfigFile = $bootstrapConfigs->getMainConfigFile();
|
|
if ($mainConfigFile !== null) {
|
|
// warning about old syntax before RectorConfig
|
|
$fileContents = \RectorPrefix20220507\Nette\Utils\FileSystem::read($mainConfigFile);
|
|
if (\strpos($fileContents, 'ContainerConfigurator $containerConfigurator') !== \false) {
|
|
/** @var SymfonyStyle $symfonyStyle */
|
|
$symfonyStyle = $container->get(\RectorPrefix20220507\Symfony\Component\Console\Style\SymfonyStyle::class);
|
|
// @todo add link to blog post after release
|
|
$warningMessage = \sprintf('Your "%s" config is using old syntax with "ContainerConfigurator".%sPlease upgrade to "RectorConfig" that allows better autocomplete and future standard.', $mainConfigFile, \PHP_EOL);
|
|
$symfonyStyle->warning($warningMessage);
|
|
// to make message noticable
|
|
\sleep(1);
|
|
}
|
|
/** @var ChangedFilesDetector $changedFilesDetector */
|
|
$changedFilesDetector = $container->get(\Rector\Caching\Detector\ChangedFilesDetector::class);
|
|
$changedFilesDetector->setFirstResolvedConfigFileInfo($mainConfigFile);
|
|
}
|
|
return $container;
|
|
}
|
|
/**
|
|
* @param string[] $configFiles
|
|
* @api
|
|
*/
|
|
private function createFromConfigs(array $configFiles) : \RectorPrefix20220507\Psr\Container\ContainerInterface
|
|
{
|
|
$rectorKernel = new \Rector\Core\Kernel\RectorKernel();
|
|
return $rectorKernel->createFromConfigs($configFiles);
|
|
}
|
|
}
|