mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-21 17:48:43 +02:00
migration symfony 5 4 (#300)
* symfony 5.4 (diff dev) * symfony 5.4 (working) * symfony 5.4 (update autoload) * symfony 5.4 (remove swiftmailer mailer implementation) * symfony 5.4 (php doc and split Global accessor class) ### Impacted packages: composer require php:">=7.2.5 <8.0.0" symfony/console:5.4.* symfony/dotenv:5.4.* symfony/framework-bundle:5.4.* symfony/twig-bundle:5.4.* symfony/yaml:5.4.* --update-with-dependencies composer require symfony/stopwatch:5.4.* symfony/web-profiler-bundle:5.4.* --dev --update-with-dependencies
This commit is contained in:
@@ -16,6 +16,7 @@ use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Helper\Table;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\StyleInterface;
|
||||
use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface;
|
||||
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
|
||||
|
||||
/**
|
||||
@@ -59,11 +60,27 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
/**
|
||||
* @return ExtensionInterface
|
||||
*/
|
||||
protected function findExtension($name)
|
||||
protected function findExtension(string $name)
|
||||
{
|
||||
$bundles = $this->initializeBundles();
|
||||
$minScore = \INF;
|
||||
|
||||
$kernel = $this->getApplication()->getKernel();
|
||||
if ($kernel instanceof ExtensionInterface && ($kernel instanceof ConfigurationInterface || $kernel instanceof ConfigurationExtensionInterface)) {
|
||||
if ($name === $kernel->getAlias()) {
|
||||
return $kernel;
|
||||
}
|
||||
|
||||
if ($kernel->getAlias()) {
|
||||
$distance = levenshtein($name, $kernel->getAlias());
|
||||
|
||||
if ($distance < $minScore) {
|
||||
$guess = $kernel->getAlias();
|
||||
$minScore = $distance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($bundles as $bundle) {
|
||||
if ($name === $bundle->getName()) {
|
||||
if (!$bundle->getContainerExtension()) {
|
||||
@@ -79,24 +96,24 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
$guess = $bundle->getName();
|
||||
$minScore = $distance;
|
||||
}
|
||||
}
|
||||
|
||||
$extension = $bundle->getContainerExtension();
|
||||
$container = $this->getContainerBuilder($kernel);
|
||||
|
||||
if ($extension) {
|
||||
if ($name === $extension->getAlias()) {
|
||||
return $extension;
|
||||
}
|
||||
if ($container->hasExtension($name)) {
|
||||
return $container->getExtension($name);
|
||||
}
|
||||
|
||||
$distance = levenshtein($name, $extension->getAlias());
|
||||
foreach ($container->getExtensions() as $extension) {
|
||||
$distance = levenshtein($name, $extension->getAlias());
|
||||
|
||||
if ($distance < $minScore) {
|
||||
$guess = $extension->getAlias();
|
||||
$minScore = $distance;
|
||||
}
|
||||
if ($distance < $minScore) {
|
||||
$guess = $extension->getAlias();
|
||||
$minScore = $distance;
|
||||
}
|
||||
}
|
||||
|
||||
if ('Bundle' !== substr($name, -6)) {
|
||||
if (!str_ends_with($name, 'Bundle')) {
|
||||
$message = sprintf('No extensions with configuration available for "%s".', $name);
|
||||
} else {
|
||||
$message = sprintf('No extension with alias "%s" is enabled.', $name);
|
||||
@@ -116,7 +133,7 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
}
|
||||
|
||||
if (!$configuration instanceof ConfigurationInterface) {
|
||||
throw new \LogicException(sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', \get_class($configuration)));
|
||||
throw new \LogicException(sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', get_debug_type($configuration)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,8 +141,9 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
{
|
||||
// Re-build bundle manually to initialize DI extensions that can be extended by other bundles in their build() method
|
||||
// as this method is not called when the container is loaded from the cache.
|
||||
$container = $this->getContainerBuilder();
|
||||
$bundles = $this->getApplication()->getKernel()->getBundles();
|
||||
$kernel = $this->getApplication()->getKernel();
|
||||
$container = $this->getContainerBuilder($kernel);
|
||||
$bundles = $kernel->getBundles();
|
||||
foreach ($bundles as $bundle) {
|
||||
if ($extension = $bundle->getContainerExtension()) {
|
||||
$container->registerExtension($extension);
|
||||
|
||||
Reference in New Issue
Block a user