mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 02:58:43 +02:00
Re-dump autoloader and composer.lock
This commit is contained in:
@@ -42,7 +42,7 @@ class RouterCacheWarmer implements CacheWarmerInterface, ServiceSubscriberInterf
|
||||
return (array) $router->warmUp($cacheDir, $buildDir);
|
||||
}
|
||||
|
||||
throw new \LogicException(sprintf('The router "%s" cannot be warmed up because it does not implement "%s".', get_debug_type($router), WarmableInterface::class));
|
||||
throw new \LogicException(\sprintf('The router "%s" cannot be warmed up because it does not implement "%s".', get_debug_type($router), WarmableInterface::class));
|
||||
}
|
||||
|
||||
public function isOptional(): bool
|
||||
|
||||
@@ -117,7 +117,7 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
foreach ($bundles as $bundle) {
|
||||
if ($name === $bundle->getName()) {
|
||||
if (!$bundle->getContainerExtension()) {
|
||||
throw new \LogicException(sprintf('Bundle "%s" does not have a container extension.', $name));
|
||||
throw new \LogicException(\sprintf('Bundle "%s" does not have a container extension.', $name));
|
||||
}
|
||||
|
||||
return $bundle->getContainerExtension();
|
||||
@@ -147,13 +147,13 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
}
|
||||
|
||||
if (!str_ends_with($name, 'Bundle')) {
|
||||
$message = sprintf('No extensions with configuration available for "%s".', $name);
|
||||
$message = \sprintf('No extensions with configuration available for "%s".', $name);
|
||||
} else {
|
||||
$message = sprintf('No extension with alias "%s" is enabled.', $name);
|
||||
$message = \sprintf('No extension with alias "%s" is enabled.', $name);
|
||||
}
|
||||
|
||||
if (isset($guess) && $minScore < 3) {
|
||||
$message .= sprintf("\n\nDid you mean \"%s\"?", $guess);
|
||||
$message .= \sprintf("\n\nDid you mean \"%s\"?", $guess);
|
||||
}
|
||||
|
||||
throw new LogicException($message);
|
||||
@@ -165,11 +165,11 @@ abstract class AbstractConfigCommand extends ContainerDebugCommand
|
||||
public function validateConfiguration(ExtensionInterface $extension, mixed $configuration)
|
||||
{
|
||||
if (!$configuration) {
|
||||
throw new \LogicException(sprintf('The extension with alias "%s" does not have its getConfiguration() method setup.', $extension->getAlias()));
|
||||
throw new \LogicException(\sprintf('The extension with alias "%s" does not have its getConfiguration() method setup.', $extension->getAlias()));
|
||||
}
|
||||
|
||||
if (!$configuration instanceof ConfigurationInterface) {
|
||||
throw new \LogicException(sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', get_debug_type($configuration)));
|
||||
throw new \LogicException(\sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable.', get_debug_type($configuration)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ EOT
|
||||
$targetArg = $kernel->getProjectDir().'/'.$targetArg;
|
||||
|
||||
if (!is_dir($targetArg)) {
|
||||
throw new InvalidArgumentException(sprintf('The target directory "%s" does not exist.', $targetArg));
|
||||
throw new InvalidArgumentException(\sprintf('The target directory "%s" does not exist.', $targetArg));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ EOT
|
||||
$validAssetDirs[] = $assetDir;
|
||||
|
||||
if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
||||
$message = sprintf("%s\n-> %s", $bundle->getName(), $targetDir);
|
||||
$message = \sprintf("%s\n-> %s", $bundle->getName(), $targetDir);
|
||||
} else {
|
||||
$message = $bundle->getName();
|
||||
}
|
||||
@@ -155,13 +155,13 @@ EOT
|
||||
}
|
||||
|
||||
if ($method === $expectedMethod) {
|
||||
$rows[] = [sprintf('<fg=green;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'OK' : "\xE2\x9C\x94" /* HEAVY CHECK MARK (U+2714) */), $message, $method];
|
||||
$rows[] = [\sprintf('<fg=green;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'OK' : "\xE2\x9C\x94" /* HEAVY CHECK MARK (U+2714) */), $message, $method];
|
||||
} else {
|
||||
$rows[] = [sprintf('<fg=yellow;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'WARNING' : '!'), $message, $method];
|
||||
$rows[] = [\sprintf('<fg=yellow;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'WARNING' : '!'), $message, $method];
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$exitCode = 1;
|
||||
$rows[] = [sprintf('<fg=red;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'ERROR' : "\xE2\x9C\x98" /* HEAVY BALLOT X (U+2718) */), $message, $e->getMessage()];
|
||||
$rows[] = [\sprintf('<fg=red;options=bold>%s</>', '\\' === \DIRECTORY_SEPARATOR ? 'ERROR' : "\xE2\x9C\x98" /* HEAVY BALLOT X (U+2718) */), $message, $e->getMessage()];
|
||||
}
|
||||
}
|
||||
// remove the assets of the bundles that no longer exist
|
||||
@@ -234,7 +234,7 @@ EOT
|
||||
}
|
||||
$this->filesystem->symlink($originDir, $targetDir);
|
||||
if (!file_exists($targetDir)) {
|
||||
throw new IOException(sprintf('Symbolic link "%s" was created but appears to be broken.', $targetDir), 0, null, $targetDir);
|
||||
throw new IOException(\sprintf('Symbolic link "%s" was created but appears to be broken.', $targetDir), 0, null, $targetDir);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ EOF
|
||||
$fs->remove($oldCacheDir);
|
||||
|
||||
if (!is_writable($realCacheDir)) {
|
||||
throw new RuntimeException(sprintf('Unable to write in the "%s" directory.', $realCacheDir));
|
||||
throw new RuntimeException(\sprintf('Unable to write in the "%s" directory.', $realCacheDir));
|
||||
}
|
||||
|
||||
$useBuildDir = $realBuildDir !== $realCacheDir;
|
||||
@@ -89,7 +89,7 @@ EOF
|
||||
$fs->remove($oldBuildDir);
|
||||
|
||||
if (!is_writable($realBuildDir)) {
|
||||
throw new RuntimeException(sprintf('Unable to write in the "%s" directory.', $realBuildDir));
|
||||
throw new RuntimeException(\sprintf('Unable to write in the "%s" directory.', $realBuildDir));
|
||||
}
|
||||
|
||||
if ($this->isNfs($realCacheDir)) {
|
||||
@@ -100,7 +100,7 @@ EOF
|
||||
$fs->mkdir($realCacheDir);
|
||||
}
|
||||
|
||||
$io->comment(sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
$io->comment(\sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
if ($useBuildDir) {
|
||||
$this->cacheClearer->clear($realBuildDir);
|
||||
}
|
||||
@@ -199,7 +199,7 @@ EOF
|
||||
$io->comment('Finished');
|
||||
}
|
||||
|
||||
$io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
$io->success(\sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -99,28 +99,28 @@ EOF
|
||||
} elseif ($pool instanceof Psr6CacheClearer) {
|
||||
$clearers[$id] = $pool;
|
||||
} else {
|
||||
throw new InvalidArgumentException(sprintf('"%s" is not a cache pool nor a cache clearer.', $id));
|
||||
throw new InvalidArgumentException(\sprintf('"%s" is not a cache pool nor a cache clearer.', $id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($clearers as $id => $clearer) {
|
||||
$io->comment(sprintf('Calling cache clearer: <info>%s</info>', $id));
|
||||
$io->comment(\sprintf('Calling cache clearer: <info>%s</info>', $id));
|
||||
$clearer->clear($kernel->getContainer()->getParameter('kernel.cache_dir'));
|
||||
}
|
||||
|
||||
$failure = false;
|
||||
foreach ($pools as $id => $pool) {
|
||||
$io->comment(sprintf('Clearing cache pool: <info>%s</info>', $id));
|
||||
$io->comment(\sprintf('Clearing cache pool: <info>%s</info>', $id));
|
||||
|
||||
if ($pool instanceof CacheItemPoolInterface) {
|
||||
if (!$pool->clear()) {
|
||||
$io->warning(sprintf('Cache pool "%s" could not be cleared.', $pool));
|
||||
$io->warning(\sprintf('Cache pool "%s" could not be cleared.', $pool));
|
||||
$failure = true;
|
||||
}
|
||||
} else {
|
||||
if (false === $this->poolClearer->clearPool($id)) {
|
||||
$io->warning(sprintf('Cache pool "%s" could not be cleared.', $pool));
|
||||
$io->warning(\sprintf('Cache pool "%s" could not be cleared.', $pool));
|
||||
$failure = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,16 +67,16 @@ EOF
|
||||
$cachePool = $this->poolClearer->getPool($pool);
|
||||
|
||||
if (!$cachePool->hasItem($key)) {
|
||||
$io->note(sprintf('Cache item "%s" does not exist in cache pool "%s".', $key, $pool));
|
||||
$io->note(\sprintf('Cache item "%s" does not exist in cache pool "%s".', $key, $pool));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!$cachePool->deleteItem($key)) {
|
||||
throw new \Exception(sprintf('Cache item "%s" could not be deleted.', $key));
|
||||
throw new \Exception(\sprintf('Cache item "%s" could not be deleted.', $key));
|
||||
}
|
||||
|
||||
$io->success(sprintf('Cache item "%s" was successfully deleted.', $key));
|
||||
$io->success(\sprintf('Cache item "%s" was successfully deleted.', $key));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -65,26 +65,26 @@ final class CachePoolInvalidateTagsCommand extends Command
|
||||
$errors = false;
|
||||
|
||||
foreach ($pools as $name) {
|
||||
$io->comment(sprintf('Invalidating tag(s): <info>%s</info> from pool <comment>%s</comment>.', $tagList, $name));
|
||||
$io->comment(\sprintf('Invalidating tag(s): <info>%s</info> from pool <comment>%s</comment>.', $tagList, $name));
|
||||
|
||||
try {
|
||||
$pool = $this->pools->get($name);
|
||||
} catch (ServiceNotFoundException) {
|
||||
$io->error(sprintf('Pool "%s" not found.', $name));
|
||||
$io->error(\sprintf('Pool "%s" not found.', $name));
|
||||
$errors = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!$pool instanceof TagAwareCacheInterface) {
|
||||
$io->error(sprintf('Pool "%s" is not taggable.', $name));
|
||||
$io->error(\sprintf('Pool "%s" is not taggable.', $name));
|
||||
$errors = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!$pool->invalidateTags($tags)) {
|
||||
$io->error(sprintf('Cache tag(s) "%s" could not be invalidated for pool "%s".', $tagList, $name));
|
||||
$io->error(\sprintf('Cache tag(s) "%s" could not be invalidated for pool "%s".', $tagList, $name));
|
||||
$errors = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ EOF
|
||||
$io = new SymfonyStyle($input, $output);
|
||||
|
||||
foreach ($this->pools as $name => $pool) {
|
||||
$io->comment(sprintf('Pruning cache pool: <info>%s</info>', $name));
|
||||
$io->comment(\sprintf('Pruning cache pool: <info>%s</info>', $name));
|
||||
$pool->prune();
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ EOF
|
||||
$io = new SymfonyStyle($input, $output);
|
||||
|
||||
$kernel = $this->getApplication()->getKernel();
|
||||
$io->comment(sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
$io->comment(\sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
|
||||
if (!$input->getOption('no-optional-warmers')) {
|
||||
$this->cacheWarmer->enableOptionalWarmers();
|
||||
@@ -72,14 +72,15 @@ EOF
|
||||
$kernel->warmUp($cacheDir);
|
||||
}
|
||||
|
||||
$preload = $this->cacheWarmer->warmUp($cacheDir);
|
||||
|
||||
$buildDir = $kernel->getContainer()->getParameter('kernel.build_dir');
|
||||
|
||||
$preload = $this->cacheWarmer->warmUp($cacheDir, $buildDir);
|
||||
|
||||
if ($preload && $cacheDir === $buildDir && file_exists($preloadFile = $buildDir.'/'.$kernel->getContainer()->getParameter('kernel.container_class').'.preload.php')) {
|
||||
Preloader::append($preloadFile, $preload);
|
||||
}
|
||||
|
||||
$io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
$io->success(\sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ class ConfigDebugCommand extends AbstractConfigCommand
|
||||
{
|
||||
protected function configure(): void
|
||||
{
|
||||
$commentedHelpFormats = array_map(fn ($format) => sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
|
||||
$commentedHelpFormats = array_map(fn ($format) => \sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
|
||||
$helpFormats = implode('", "', $commentedHelpFormats);
|
||||
|
||||
$this
|
||||
@@ -49,7 +49,7 @@ class ConfigDebugCommand extends AbstractConfigCommand
|
||||
new InputArgument('name', InputArgument::OPTIONAL, 'The bundle name or the extension alias'),
|
||||
new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'),
|
||||
new InputOption('resolve-env', null, InputOption::VALUE_NONE, 'Display resolved environment variable values instead of placeholders'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), class_exists(Yaml::class) ? 'txt' : 'json'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), class_exists(Yaml::class) ? 'txt' : 'json'),
|
||||
])
|
||||
->setHelp(<<<EOF
|
||||
The <info>%command.name%</info> command dumps the current configuration for an
|
||||
@@ -106,7 +106,7 @@ EOF
|
||||
if (null === $path = $input->getArgument('path')) {
|
||||
if ('txt' === $input->getOption('format')) {
|
||||
$io->title(
|
||||
sprintf('Current configuration for %s', $name === $extensionAlias ? sprintf('extension with alias "%s"', $extensionAlias) : sprintf('"%s"', $name))
|
||||
\sprintf('Current configuration for %s', $name === $extensionAlias ? \sprintf('extension with alias "%s"', $extensionAlias) : \sprintf('"%s"', $name))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ EOF
|
||||
return 1;
|
||||
}
|
||||
|
||||
$io->title(sprintf('Current configuration for "%s.%s"', $extensionAlias, $path));
|
||||
$io->title(\sprintf('Current configuration for "%s.%s"', $extensionAlias, $path));
|
||||
|
||||
$io->writeln($this->convertToFormat($config, $format));
|
||||
|
||||
@@ -135,7 +135,7 @@ EOF
|
||||
return match ($format) {
|
||||
'txt', 'yaml' => Yaml::dump($config, 10),
|
||||
'json' => json_encode($config, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE),
|
||||
default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
|
||||
default => throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ EOF
|
||||
|
||||
foreach ($steps as $step) {
|
||||
if (!\array_key_exists($step, $config)) {
|
||||
throw new LogicException(sprintf('Unable to find configuration for "%s.%s".', $alias, $path));
|
||||
throw new LogicException(\sprintf('Unable to find configuration for "%s.%s".', $alias, $path));
|
||||
}
|
||||
|
||||
$config = $config[$step];
|
||||
@@ -190,7 +190,7 @@ EOF
|
||||
// Fall back to default config if the extension has one
|
||||
|
||||
if (!$extension instanceof ConfigurationExtensionInterface && !$extension instanceof ConfigurationInterface) {
|
||||
throw new \LogicException(sprintf('The extension with alias "%s" does not have configuration.', $extensionAlias));
|
||||
throw new \LogicException(\sprintf('The extension with alias "%s" does not have configuration.', $extensionAlias));
|
||||
}
|
||||
|
||||
$configs = $container->getExtensionConfig($extensionAlias);
|
||||
|
||||
@@ -39,14 +39,14 @@ class ConfigDumpReferenceCommand extends AbstractConfigCommand
|
||||
{
|
||||
protected function configure(): void
|
||||
{
|
||||
$commentedHelpFormats = array_map(fn ($format) => sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
|
||||
$commentedHelpFormats = array_map(fn ($format) => \sprintf('<comment>%s</comment>', $format), $this->getAvailableFormatOptions());
|
||||
$helpFormats = implode('", "', $commentedHelpFormats);
|
||||
|
||||
$this
|
||||
->setDefinition([
|
||||
new InputArgument('name', InputArgument::OPTIONAL, 'The Bundle name or the extension alias'),
|
||||
new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'yaml'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'yaml'),
|
||||
])
|
||||
->setHelp(<<<EOF
|
||||
The <info>%command.name%</info> command dumps the default configuration for an
|
||||
@@ -118,27 +118,27 @@ EOF
|
||||
}
|
||||
|
||||
if ($name === $extension->getAlias()) {
|
||||
$message = sprintf('Default configuration for extension with alias: "%s"', $name);
|
||||
$message = \sprintf('Default configuration for extension with alias: "%s"', $name);
|
||||
} else {
|
||||
$message = sprintf('Default configuration for "%s"', $name);
|
||||
$message = \sprintf('Default configuration for "%s"', $name);
|
||||
}
|
||||
|
||||
if (null !== $path) {
|
||||
$message .= sprintf(' at path "%s"', $path);
|
||||
$message .= \sprintf(' at path "%s"', $path);
|
||||
}
|
||||
|
||||
switch ($format) {
|
||||
case 'yaml':
|
||||
$io->writeln(sprintf('# %s', $message));
|
||||
$io->writeln(\sprintf('# %s', $message));
|
||||
$dumper = new YamlReferenceDumper();
|
||||
break;
|
||||
case 'xml':
|
||||
$io->writeln(sprintf('<!-- %s -->', $message));
|
||||
$io->writeln(\sprintf('<!-- %s -->', $message));
|
||||
$dumper = new XmlReferenceDumper();
|
||||
break;
|
||||
default:
|
||||
$io->writeln($message);
|
||||
throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions())));
|
||||
throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions())));
|
||||
}
|
||||
|
||||
$io->writeln(null === $path ? $dumper->dump($configuration, $extension->getNamespace()) : $dumper->dumpAtPath($configuration, $path));
|
||||
|
||||
@@ -52,7 +52,7 @@ class ContainerDebugCommand extends Command
|
||||
new InputOption('types', null, InputOption::VALUE_NONE, 'Display types (classes/interfaces) available in the container'),
|
||||
new InputOption('env-var', null, InputOption::VALUE_REQUIRED, 'Display a specific environment variable used in the container'),
|
||||
new InputOption('env-vars', null, InputOption::VALUE_NONE, 'Display environment variables used in the container'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'),
|
||||
new InputOption('deprecations', null, InputOption::VALUE_NONE, 'Display deprecations generated when compiling and warming up the container'),
|
||||
])
|
||||
@@ -171,19 +171,19 @@ EOF
|
||||
if ($object->hasDefinition($options['id'])) {
|
||||
$definition = $object->getDefinition($options['id']);
|
||||
if ($definition->isDeprecated()) {
|
||||
$errorIo->warning($definition->getDeprecation($options['id'])['message'] ?? sprintf('The "%s" service is deprecated.', $options['id']));
|
||||
$errorIo->warning($definition->getDeprecation($options['id'])['message'] ?? \sprintf('The "%s" service is deprecated.', $options['id']));
|
||||
}
|
||||
}
|
||||
if ($object->hasAlias($options['id'])) {
|
||||
$alias = $object->getAlias($options['id']);
|
||||
if ($alias->isDeprecated()) {
|
||||
$errorIo->warning($alias->getDeprecation($options['id'])['message'] ?? sprintf('The "%s" alias is deprecated.', $options['id']));
|
||||
$errorIo->warning($alias->getDeprecation($options['id'])['message'] ?? \sprintf('The "%s" alias is deprecated.', $options['id']));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($options['id']) && isset($kernel->getContainer()->getRemovedIds()[$options['id']])) {
|
||||
$errorIo->note(sprintf('The "%s" service or alias has been removed or inlined when the container was compiled.', $options['id']));
|
||||
$errorIo->note(\sprintf('The "%s" service or alias has been removed or inlined when the container was compiled.', $options['id']));
|
||||
}
|
||||
} catch (ServiceNotFoundException $e) {
|
||||
if ('' !== $e->getId() && '@' === $e->getId()[0]) {
|
||||
@@ -277,7 +277,7 @@ EOF
|
||||
|
||||
$matchingServices = $this->findServiceIdsContaining($container, $name, $showHidden);
|
||||
if (!$matchingServices) {
|
||||
throw new InvalidArgumentException(sprintf('No services found that match "%s".', $name));
|
||||
throw new InvalidArgumentException(\sprintf('No services found that match "%s".', $name));
|
||||
}
|
||||
|
||||
if (1 === \count($matchingServices)) {
|
||||
@@ -297,7 +297,7 @@ EOF
|
||||
|
||||
$matchingTags = $this->findTagsContaining($container, $tagName);
|
||||
if (!$matchingTags) {
|
||||
throw new InvalidArgumentException(sprintf('No tags found that match "%s".', $tagName));
|
||||
throw new InvalidArgumentException(\sprintf('No tags found that match "%s".', $tagName));
|
||||
}
|
||||
|
||||
if (1 === \count($matchingTags)) {
|
||||
|
||||
@@ -80,7 +80,7 @@ final class ContainerLintCommand extends Command
|
||||
|
||||
if (!$kernel->isDebug() || !$kernelContainer->getParameter('debug.container.dump') || !(new ConfigCache($kernelContainer->getParameter('debug.container.dump'), true))->isFresh()) {
|
||||
if (!$kernel instanceof Kernel) {
|
||||
throw new RuntimeException(sprintf('This command does not support the application kernel: "%s" does not extend "%s".', get_debug_type($kernel), Kernel::class));
|
||||
throw new RuntimeException(\sprintf('This command does not support the application kernel: "%s" does not extend "%s".', get_debug_type($kernel), Kernel::class));
|
||||
}
|
||||
|
||||
$buildContainer = \Closure::bind(function (): ContainerBuilder {
|
||||
@@ -91,7 +91,7 @@ final class ContainerLintCommand extends Command
|
||||
$container = $buildContainer();
|
||||
} else {
|
||||
if (!$kernelContainer instanceof Container) {
|
||||
throw new RuntimeException(sprintf('This command does not support the application container: "%s" does not extend "%s".', get_debug_type($kernelContainer), Container::class));
|
||||
throw new RuntimeException(\sprintf('This command does not support the application container: "%s" does not extend "%s".', get_debug_type($kernelContainer), Container::class));
|
||||
}
|
||||
|
||||
(new XmlFileLoader($container = new ContainerBuilder($parameterBag = new EnvPlaceholderParameterBag()), new FileLocator()))->load($kernelContainer->getParameter('debug.container.dump'));
|
||||
|
||||
@@ -78,7 +78,7 @@ EOF
|
||||
$serviceIds = array_filter($serviceIds, fn ($serviceId) => false !== stripos(str_replace('\\', '', $serviceId), $searchNormalized) && !str_starts_with($serviceId, '.'));
|
||||
|
||||
if (!$serviceIds) {
|
||||
$errorIo->error(sprintf('No autowirable classes or interfaces found matching "%s"', $search));
|
||||
$errorIo->error(\sprintf('No autowirable classes or interfaces found matching "%s"', $search));
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -97,7 +97,7 @@ EOF
|
||||
$io->title('Autowirable Types');
|
||||
$io->text('The following classes & interfaces can be used as type-hints when autowiring:');
|
||||
if ($search) {
|
||||
$io->text(sprintf('(only showing classes/interfaces matching <comment>%s</comment>)', $search));
|
||||
$io->text(\sprintf('(only showing classes/interfaces matching <comment>%s</comment>)', $search));
|
||||
}
|
||||
$hasAlias = [];
|
||||
$all = $input->getOption('all');
|
||||
@@ -120,10 +120,10 @@ EOF
|
||||
}
|
||||
}
|
||||
|
||||
$serviceLine = sprintf('<fg=yellow>%s</>', $serviceId);
|
||||
$serviceLine = \sprintf('<fg=yellow>%s</>', $serviceId);
|
||||
if ('' !== $fileLink = $this->getFileLink($previousId)) {
|
||||
$serviceLine = substr($serviceId, \strlen($previousId));
|
||||
$serviceLine = sprintf('<fg=yellow;href=%s>%s</>', $fileLink, $previousId).('' !== $serviceLine ? sprintf('<fg=yellow>%s</>', $serviceLine) : '');
|
||||
$serviceLine = \sprintf('<fg=yellow;href=%s>%s</>', $fileLink, $previousId).('' !== $serviceLine ? \sprintf('<fg=yellow>%s</>', $serviceLine) : '');
|
||||
}
|
||||
|
||||
if ($container->hasAlias($serviceId)) {
|
||||
@@ -168,7 +168,7 @@ EOF
|
||||
$io->newLine();
|
||||
|
||||
if (0 < $serviceIdsNb) {
|
||||
$io->text(sprintf('%s more concrete service%s would be displayed when adding the "--all" option.', $serviceIdsNb, $serviceIdsNb > 1 ? 's' : ''));
|
||||
$io->text(\sprintf('%s more concrete service%s would be displayed when adding the "--all" option.', $serviceIdsNb, $serviceIdsNb > 1 ? 's' : ''));
|
||||
}
|
||||
if ($all) {
|
||||
$io->text('Pro-tip: use interfaces in your type-hints instead of classes to benefit from the dependency inversion principle.');
|
||||
|
||||
@@ -52,7 +52,7 @@ class EventDispatcherDebugCommand extends Command
|
||||
->setDefinition([
|
||||
new InputArgument('event', InputArgument::OPTIONAL, 'An event name or a part of the event name'),
|
||||
new InputOption('dispatcher', null, InputOption::VALUE_REQUIRED, 'To view events of a specific event dispatcher', self::DEFAULT_DISPATCHER),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'),
|
||||
])
|
||||
->setHelp(<<<'EOF'
|
||||
@@ -78,7 +78,7 @@ EOF
|
||||
$options = [];
|
||||
$dispatcherServiceName = $input->getOption('dispatcher');
|
||||
if (!$this->dispatchers->has($dispatcherServiceName)) {
|
||||
$io->getErrorStyle()->error(sprintf('Event dispatcher "%s" is not available.', $dispatcherServiceName));
|
||||
$io->getErrorStyle()->error(\sprintf('Event dispatcher "%s" is not available.', $dispatcherServiceName));
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -92,7 +92,7 @@ EOF
|
||||
// if there is no direct match, try find partial matches
|
||||
$events = $this->searchForEvent($dispatcher, $event);
|
||||
if (0 === \count($events)) {
|
||||
$io->getErrorStyle()->warning(sprintf('The event "%s" does not have any registered listeners.', $event));
|
||||
$io->getErrorStyle()->warning(\sprintf('The event "%s" does not have any registered listeners.', $event));
|
||||
|
||||
return 0;
|
||||
} elseif (1 === \count($events)) {
|
||||
|
||||
@@ -57,7 +57,7 @@ class RouterDebugCommand extends Command
|
||||
new InputArgument('name', InputArgument::OPTIONAL, 'A route name'),
|
||||
new InputOption('show-controllers', null, InputOption::VALUE_NONE, 'Show assigned controllers in overview'),
|
||||
new InputOption('show-aliases', null, InputOption::VALUE_NONE, 'Show aliases in overview'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions())), 'txt'),
|
||||
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw route(s)'),
|
||||
])
|
||||
->setHelp(<<<'EOF'
|
||||
@@ -107,7 +107,7 @@ EOF
|
||||
}
|
||||
|
||||
if (!$route) {
|
||||
throw new InvalidArgumentException(sprintf('The route "%s" does not exist.', $name));
|
||||
throw new InvalidArgumentException(\sprintf('The route "%s" does not exist.', $name));
|
||||
}
|
||||
|
||||
$helper->describe($io, $route, [
|
||||
|
||||
@@ -97,21 +97,21 @@ EOF
|
||||
$matches = false;
|
||||
foreach ($traces as $trace) {
|
||||
if (TraceableUrlMatcher::ROUTE_ALMOST_MATCHES == $trace['level']) {
|
||||
$io->text(sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
|
||||
$io->text(\sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
|
||||
} elseif (TraceableUrlMatcher::ROUTE_MATCHES == $trace['level']) {
|
||||
$io->success(sprintf('Route "%s" matches', $trace['name']));
|
||||
$io->success(\sprintf('Route "%s" matches', $trace['name']));
|
||||
|
||||
$routerDebugCommand = $this->getApplication()->find('debug:router');
|
||||
$routerDebugCommand->run(new ArrayInput(['name' => $trace['name']]), $output);
|
||||
|
||||
$matches = true;
|
||||
} elseif ($input->getOption('verbose')) {
|
||||
$io->text(sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
|
||||
$io->text(\sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
|
||||
}
|
||||
}
|
||||
|
||||
if (!$matches) {
|
||||
$io->error(sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
|
||||
$io->error(\sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ EOF
|
||||
|
||||
$secrets = $this->vault->list(true);
|
||||
|
||||
$io->comment(sprintf('%d secret%s found in the vault.', \count($secrets), 1 !== \count($secrets) ? 's' : ''));
|
||||
$io->comment(\sprintf('%d secret%s found in the vault.', \count($secrets), 1 !== \count($secrets) ? 's' : ''));
|
||||
|
||||
$skipped = 0;
|
||||
if (!$input->getOption('force')) {
|
||||
@@ -82,14 +82,14 @@ EOF
|
||||
|
||||
if ($skipped > 0) {
|
||||
$io->warning([
|
||||
sprintf('%d secret%s already overridden in the local vault and will be skipped.', $skipped, 1 !== $skipped ? 's are' : ' is'),
|
||||
\sprintf('%d secret%s already overridden in the local vault and will be skipped.', $skipped, 1 !== $skipped ? 's are' : ' is'),
|
||||
'Use the --force flag to override these.',
|
||||
]);
|
||||
}
|
||||
|
||||
foreach ($secrets as $k => $v) {
|
||||
if (null === $v) {
|
||||
$io->error($this->vault->getLastMessage() ?? sprintf('Secret "%s" has been skipped as there was an error reading it.', $k));
|
||||
$io->error($this->vault->getLastMessage() ?? \sprintf('Secret "%s" has been skipped as there was an error reading it.', $k));
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ EOF
|
||||
$vault = $input->getOption('local') ? $this->localVault : $this->vault;
|
||||
|
||||
if (null === $vault) {
|
||||
$io->success('The local vault is disabled.');
|
||||
$io->error('The local vault is disabled.');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ EOF
|
||||
$io->comment('Use <info>"%env(<name>)%"</info> to reference a secret in a config file.');
|
||||
|
||||
if (!$reveal = $input->getOption('reveal')) {
|
||||
$io->comment(sprintf('To reveal the secrets run <info>php %s %s --reveal</info>', $_SERVER['PHP_SELF'], $this->getName()));
|
||||
$io->comment(\sprintf('To reveal the secrets run <info>php %s %s --reveal</info>', $_SERVER['PHP_SELF'], $this->getName()));
|
||||
}
|
||||
|
||||
$secrets = $this->vault->list($reveal);
|
||||
|
||||
@@ -63,7 +63,7 @@ EOF
|
||||
$vault = $input->getOption('local') ? $this->localVault : $this->vault;
|
||||
|
||||
if (null === $vault) {
|
||||
$io->success('The local vault is disabled.');
|
||||
$io->error('The local vault is disabled.');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ EOF
|
||||
}
|
||||
|
||||
if ($this->localVault === $vault && !\array_key_exists($name, $this->vault->list())) {
|
||||
$io->error(sprintf('Secret "%s" does not exist in the vault, you cannot override it locally.', $name));
|
||||
$io->error(\sprintf('Secret "%s" does not exist in the vault, you cannot override it locally.', $name));
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -107,9 +107,9 @@ EOF
|
||||
} elseif (is_file($file) && is_readable($file)) {
|
||||
$value = file_get_contents($file);
|
||||
} elseif (!is_file($file)) {
|
||||
throw new \InvalidArgumentException(sprintf('File not found: "%s".', $file));
|
||||
throw new \InvalidArgumentException(\sprintf('File not found: "%s".', $file));
|
||||
} elseif (!is_readable($file)) {
|
||||
throw new \InvalidArgumentException(sprintf('File is not readable: "%s".', $file));
|
||||
throw new \InvalidArgumentException(\sprintf('File is not readable: "%s".', $file));
|
||||
}
|
||||
|
||||
if ($vault->generateKeys()) {
|
||||
|
||||
@@ -155,7 +155,7 @@ EOF
|
||||
$codePaths = [$path.'/templates'];
|
||||
|
||||
if (!is_dir($transPaths[0])) {
|
||||
throw new InvalidArgumentException(sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
|
||||
throw new InvalidArgumentException(\sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
|
||||
}
|
||||
}
|
||||
} elseif ($input->getOption('all')) {
|
||||
@@ -181,10 +181,10 @@ EOF
|
||||
|
||||
// No defined or extracted messages
|
||||
if (!$allMessages || null !== $domain && empty($allMessages[$domain])) {
|
||||
$outputMessage = sprintf('No defined or extracted messages for locale "%s"', $locale);
|
||||
$outputMessage = \sprintf('No defined or extracted messages for locale "%s"', $locale);
|
||||
|
||||
if (null !== $domain) {
|
||||
$outputMessage .= sprintf(' and domain "%s"', $domain);
|
||||
$outputMessage .= \sprintf(' and domain "%s"', $domain);
|
||||
}
|
||||
|
||||
$io->getErrorStyle()->warning($outputMessage);
|
||||
@@ -196,9 +196,9 @@ EOF
|
||||
$fallbackCatalogues = $this->loadFallbackCatalogues($locale, $transPaths);
|
||||
|
||||
// Display header line
|
||||
$headers = ['State', 'Domain', 'Id', sprintf('Message Preview (%s)', $locale)];
|
||||
$headers = ['State', 'Domain', 'Id', \sprintf('Message Preview (%s)', $locale)];
|
||||
foreach ($fallbackCatalogues as $fallbackCatalogue) {
|
||||
$headers[] = sprintf('Fallback Message Preview (%s)', $fallbackCatalogue->getLocale());
|
||||
$headers[] = \sprintf('Fallback Message Preview (%s)', $fallbackCatalogue->getLocale());
|
||||
}
|
||||
$rows = [];
|
||||
// Iterate all message ids and determine their state
|
||||
@@ -320,7 +320,7 @@ EOF
|
||||
|
||||
private function formatId(string $id): string
|
||||
{
|
||||
return sprintf('<fg=cyan;options=bold>%s</>', $id);
|
||||
return \sprintf('<fg=cyan;options=bold>%s</>', $id);
|
||||
}
|
||||
|
||||
private function sanitizeString(string $string, int $length = 40): string
|
||||
|
||||
@@ -64,7 +64,7 @@ class TranslationUpdateCommand extends Command
|
||||
parent::__construct();
|
||||
|
||||
if (!method_exists($writer, 'getFormats')) {
|
||||
throw new \InvalidArgumentException(sprintf('The writer class "%s" does not implement the "getFormats()" method.', $writer::class));
|
||||
throw new \InvalidArgumentException(\sprintf('The writer class "%s" does not implement the "getFormats()" method.', $writer::class));
|
||||
}
|
||||
|
||||
$this->writer = $writer;
|
||||
@@ -183,13 +183,13 @@ EOF
|
||||
$codePaths = [$path.'/templates'];
|
||||
|
||||
if (!is_dir($transPaths[0])) {
|
||||
throw new InvalidArgumentException(sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
|
||||
throw new InvalidArgumentException(\sprintf('"%s" is neither an enabled bundle nor a directory.', $transPaths[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$io->title('Translation Messages Extractor and Dumper');
|
||||
$io->comment(sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
|
||||
$io->comment(\sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
|
||||
|
||||
$io->comment('Parsing templates...');
|
||||
$extractedCatalogue = $this->extractMessages($input->getArgument('locale'), $codePaths, $input->getOption('prefix'));
|
||||
@@ -228,8 +228,8 @@ EOF
|
||||
|
||||
$list = array_merge(
|
||||
array_diff($allKeys, $newKeys),
|
||||
array_map(fn ($id) => sprintf('<fg=green>%s</>', $id), $newKeys),
|
||||
array_map(fn ($id) => sprintf('<fg=red>%s</>', $id), array_keys($operation->getObsoleteMessages($domain)))
|
||||
array_map(fn ($id) => \sprintf('<fg=green>%s</>', $id), $newKeys),
|
||||
array_map(fn ($id) => \sprintf('<fg=red>%s</>', $id), array_keys($operation->getObsoleteMessages($domain)))
|
||||
);
|
||||
|
||||
$domainMessagesCount = \count($list);
|
||||
@@ -249,17 +249,17 @@ EOF
|
||||
}
|
||||
}
|
||||
|
||||
$io->section(sprintf('Messages extracted for domain "<info>%s</info>" (%d message%s)', $domain, $domainMessagesCount, $domainMessagesCount > 1 ? 's' : ''));
|
||||
$io->section(\sprintf('Messages extracted for domain "<info>%s</info>" (%d message%s)', $domain, $domainMessagesCount, $domainMessagesCount > 1 ? 's' : ''));
|
||||
$io->listing($list);
|
||||
|
||||
$extractedMessagesCount += $domainMessagesCount;
|
||||
}
|
||||
|
||||
if ('xlf' === $format) {
|
||||
$io->comment(sprintf('Xliff output version is <info>%s</info>', $xliffVersion));
|
||||
$io->comment(\sprintf('Xliff output version is <info>%s</info>', $xliffVersion));
|
||||
}
|
||||
|
||||
$resultMessage = sprintf('%d message%s successfully extracted', $extractedMessagesCount, $extractedMessagesCount > 1 ? 's were' : ' was');
|
||||
$resultMessage = \sprintf('%d message%s successfully extracted', $extractedMessagesCount, $extractedMessagesCount > 1 ? 's were' : ' was');
|
||||
}
|
||||
|
||||
// save the files
|
||||
|
||||
@@ -62,7 +62,7 @@ class WorkflowDumpCommand extends Command
|
||||
$this->definitions = $workflows;
|
||||
trigger_deprecation('symfony/framework-bundle', '6.2', 'Passing an array of definitions in "%s()" is deprecated. Inject a ServiceLocator filled with all workflows instead.', __METHOD__);
|
||||
} else {
|
||||
throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an array or a ServiceLocator, "%s" given.', __METHOD__, \gettype($workflows)));
|
||||
throw new \TypeError(\sprintf('Argument 1 passed to "%s()" must be an array or a ServiceLocator, "%s" given.', __METHOD__, \gettype($workflows)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ EOF
|
||||
|
||||
if (isset($this->workflows)) {
|
||||
if (!$this->workflows->has($workflowName)) {
|
||||
throw new InvalidArgumentException(sprintf('The workflow named "%s" cannot be found.', $workflowName));
|
||||
throw new InvalidArgumentException(\sprintf('The workflow named "%s" cannot be found.', $workflowName));
|
||||
}
|
||||
$workflow = $this->workflows->get($workflowName);
|
||||
$type = $workflow instanceof StateMachine ? 'state_machine' : 'workflow';
|
||||
@@ -108,7 +108,7 @@ EOF
|
||||
}
|
||||
|
||||
if (null === $definition) {
|
||||
throw new InvalidArgumentException(sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowName));
|
||||
throw new InvalidArgumentException(\sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowName));
|
||||
}
|
||||
|
||||
switch ($input->getOption('dump-format')) {
|
||||
|
||||
@@ -166,7 +166,7 @@ class Application extends BaseApplication
|
||||
|
||||
public function getLongVersion(): string
|
||||
{
|
||||
return parent::getLongVersion().sprintf(' (env: <comment>%s</>, debug: <comment>%s</>)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
|
||||
return parent::getLongVersion().\sprintf(' (env: <comment>%s</>, debug: <comment>%s</>)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
|
||||
}
|
||||
|
||||
public function add(Command $command): ?Command
|
||||
|
||||
@@ -62,7 +62,7 @@ abstract class Descriptor implements DescriptorInterface
|
||||
$object instanceof Alias => $this->describeContainerAlias($object, $options),
|
||||
$object instanceof EventDispatcherInterface => $this->describeEventDispatcherListeners($object, $options),
|
||||
\is_callable($object) => $this->describeCallable($object, $options),
|
||||
default => throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
|
||||
default => throw new \InvalidArgumentException(\sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
|
||||
};
|
||||
|
||||
if ($object instanceof ContainerBuilder) {
|
||||
@@ -133,7 +133,7 @@ abstract class Descriptor implements DescriptorInterface
|
||||
}
|
||||
|
||||
if (\is_object($value)) {
|
||||
return sprintf('object(%s)', $value::class);
|
||||
return \sprintf('object(%s)', $value::class);
|
||||
}
|
||||
|
||||
if (\is_string($value)) {
|
||||
|
||||
@@ -156,7 +156,7 @@ class JsonDescriptor extends Descriptor
|
||||
$data = [$key => $parameter];
|
||||
|
||||
if ($deprecation) {
|
||||
$data['_deprecation'] = sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2)));
|
||||
$data['_deprecation'] = \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2)));
|
||||
}
|
||||
|
||||
$this->writeData($data, $options);
|
||||
@@ -169,7 +169,7 @@ class JsonDescriptor extends Descriptor
|
||||
|
||||
protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
|
||||
{
|
||||
$containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
$containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
if (!file_exists($containerDeprecationFilePath)) {
|
||||
throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
|
||||
}
|
||||
@@ -236,7 +236,7 @@ class JsonDescriptor extends Descriptor
|
||||
$deprecations = [];
|
||||
|
||||
foreach ($deprecated as $parameter => $deprecation) {
|
||||
$deprecations[$parameter] = sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2)));
|
||||
$deprecations[$parameter] = \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2)));
|
||||
}
|
||||
|
||||
$sortedParameters['_deprecations'] = $deprecations;
|
||||
@@ -280,7 +280,7 @@ class JsonDescriptor extends Descriptor
|
||||
if ($factory[0] instanceof Reference) {
|
||||
$data['factory_service'] = (string) $factory[0];
|
||||
} elseif ($factory[0] instanceof Definition) {
|
||||
$data['factory_service'] = sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured');
|
||||
$data['factory_service'] = \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured');
|
||||
} else {
|
||||
$data['factory_class'] = $factory[0];
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
}
|
||||
$this->describeRoute($route, ['name' => $name]);
|
||||
if (($showAliases ??= $options['show_aliases'] ?? false) && $aliases = ($reverseAliases ??= $this->getReverseAliases($routes))[$name] ?? []) {
|
||||
$this->write(sprintf("- Aliases: \n%s", implode("\n", array_map(static fn (string $alias): string => sprintf(' - %s', $alias), $aliases))));
|
||||
$this->write(\sprintf("- Aliases: \n%s", implode("\n", array_map(static fn (string $alias): string => \sprintf(' - %s', $alias), $aliases))));
|
||||
}
|
||||
}
|
||||
$this->write("\n");
|
||||
@@ -75,11 +75,11 @@ class MarkdownDescriptor extends Descriptor
|
||||
|
||||
$this->write("Container parameters\n====================\n");
|
||||
foreach ($this->sortParameters($parameters) as $key => $value) {
|
||||
$this->write(sprintf(
|
||||
$this->write(\sprintf(
|
||||
"\n- `%s`: `%s`%s",
|
||||
$key,
|
||||
$this->formatParameter($value),
|
||||
isset($deprecatedParameters[$key]) ? sprintf(' *Since %s %s: %s*', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], sprintf(...\array_slice($deprecatedParameters[$key], 2))) : ''
|
||||
isset($deprecatedParameters[$key]) ? \sprintf(' *Since %s %s: %s*', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], \sprintf(...\array_slice($deprecatedParameters[$key], 2))) : ''
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -111,13 +111,13 @@ class MarkdownDescriptor extends Descriptor
|
||||
} elseif ($service instanceof Definition) {
|
||||
$this->describeContainerDefinition($service, $childOptions, $container);
|
||||
} else {
|
||||
$this->write(sprintf('**`%s`:** `%s`', $options['id'], $service::class));
|
||||
$this->write(\sprintf('**`%s`:** `%s`', $options['id'], $service::class));
|
||||
}
|
||||
}
|
||||
|
||||
protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
|
||||
{
|
||||
$containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
$containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
if (!file_exists($containerDeprecationFilePath)) {
|
||||
throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
|
||||
}
|
||||
@@ -132,11 +132,11 @@ class MarkdownDescriptor extends Descriptor
|
||||
$formattedLogs = [];
|
||||
$remainingCount = 0;
|
||||
foreach ($logs as $log) {
|
||||
$formattedLogs[] = sprintf("- %sx: \"%s\" in %s:%s\n", $log['count'], $log['message'], $log['file'], $log['line']);
|
||||
$formattedLogs[] = \sprintf("- %sx: \"%s\" in %s:%s\n", $log['count'], $log['message'], $log['file'], $log['line']);
|
||||
$remainingCount += $log['count'];
|
||||
}
|
||||
|
||||
$this->write(sprintf("## Remaining deprecations (%s)\n\n", $remainingCount));
|
||||
$this->write(\sprintf("## Remaining deprecations (%s)\n\n", $remainingCount));
|
||||
foreach ($formattedLogs as $formattedLog) {
|
||||
$this->write($formattedLog);
|
||||
}
|
||||
@@ -201,7 +201,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
$this->write("\n\nServices\n--------\n");
|
||||
foreach ($services['services'] as $id => $service) {
|
||||
$this->write("\n");
|
||||
$this->write(sprintf('- `%s`: `%s`', $id, $service::class));
|
||||
$this->write(\sprintf('- `%s`: `%s`', $id, $service::class));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -244,7 +244,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
if ($factory[0] instanceof Reference) {
|
||||
$output .= "\n".'- Factory Service: `'.$factory[0].'`';
|
||||
} elseif ($factory[0] instanceof Definition) {
|
||||
$output .= "\n".sprintf('- Factory Service: inline factory service (%s)', $factory[0]->getClass() ? sprintf('`%s`', $factory[0]->getClass()) : 'not configured');
|
||||
$output .= "\n".\sprintf('- Factory Service: inline factory service (%s)', $factory[0]->getClass() ? \sprintf('`%s`', $factory[0]->getClass()) : 'not configured');
|
||||
} else {
|
||||
$output .= "\n".'- Factory Class: `'.$factory[0].'`';
|
||||
}
|
||||
@@ -273,7 +273,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
$inEdges = null !== $container && isset($options['id']) ? $this->getServiceEdges($container, $options['id']) : [];
|
||||
$output .= "\n".'- Usages: '.($inEdges ? implode(', ', $inEdges) : 'none');
|
||||
|
||||
$this->write(isset($options['id']) ? sprintf("### %s\n\n%s\n", $options['id'], $output) : $output);
|
||||
$this->write(isset($options['id']) ? \sprintf("### %s\n\n%s\n", $options['id'], $output) : $output);
|
||||
}
|
||||
|
||||
protected function describeContainerAlias(Alias $alias, array $options = [], ?ContainerBuilder $container = null): void
|
||||
@@ -287,7 +287,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
return;
|
||||
}
|
||||
|
||||
$this->write(sprintf("### %s\n\n%s\n", $options['id'], $output));
|
||||
$this->write(\sprintf("### %s\n\n%s\n", $options['id'], $output));
|
||||
|
||||
if (!$container) {
|
||||
return;
|
||||
@@ -300,7 +300,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
protected function describeContainerParameter(mixed $parameter, ?array $deprecation, array $options = []): void
|
||||
{
|
||||
if (isset($options['parameter'])) {
|
||||
$this->write(sprintf("%s\n%s\n\n%s%s", $options['parameter'], str_repeat('=', \strlen($options['parameter'])), $this->formatParameter($parameter), $deprecation ? sprintf("\n\n*Since %s %s: %s*", $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))) : ''));
|
||||
$this->write(\sprintf("%s\n%s\n\n%s%s", $options['parameter'], str_repeat('=', \strlen($options['parameter'])), $this->formatParameter($parameter), $deprecation ? \sprintf("\n\n*Since %s %s: %s*", $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))) : ''));
|
||||
} else {
|
||||
$this->write($parameter);
|
||||
}
|
||||
@@ -319,35 +319,35 @@ class MarkdownDescriptor extends Descriptor
|
||||
$title = 'Registered listeners';
|
||||
|
||||
if (null !== $dispatcherServiceName) {
|
||||
$title .= sprintf(' of event dispatcher "%s"', $dispatcherServiceName);
|
||||
$title .= \sprintf(' of event dispatcher "%s"', $dispatcherServiceName);
|
||||
}
|
||||
|
||||
if (null !== $event) {
|
||||
$title .= sprintf(' for event `%s` ordered by descending priority', $event);
|
||||
$title .= \sprintf(' for event `%s` ordered by descending priority', $event);
|
||||
$registeredListeners = $eventDispatcher->getListeners($event);
|
||||
} else {
|
||||
// Try to see if "events" exists
|
||||
$registeredListeners = \array_key_exists('events', $options) ? array_combine($options['events'], array_map(fn ($event) => $eventDispatcher->getListeners($event), $options['events'])) : $eventDispatcher->getListeners();
|
||||
}
|
||||
|
||||
$this->write(sprintf('# %s', $title)."\n");
|
||||
$this->write(\sprintf('# %s', $title)."\n");
|
||||
|
||||
if (null !== $event) {
|
||||
foreach ($registeredListeners as $order => $listener) {
|
||||
$this->write("\n".sprintf('## Listener %d', $order + 1)."\n");
|
||||
$this->write("\n".\sprintf('## Listener %d', $order + 1)."\n");
|
||||
$this->describeCallable($listener);
|
||||
$this->write(sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($event, $listener))."\n");
|
||||
$this->write(\sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($event, $listener))."\n");
|
||||
}
|
||||
} else {
|
||||
ksort($registeredListeners);
|
||||
|
||||
foreach ($registeredListeners as $eventListened => $eventListeners) {
|
||||
$this->write("\n".sprintf('## %s', $eventListened)."\n");
|
||||
$this->write("\n".\sprintf('## %s', $eventListened)."\n");
|
||||
|
||||
foreach ($eventListeners as $order => $eventListener) {
|
||||
$this->write("\n".sprintf('### Listener %d', $order + 1)."\n");
|
||||
$this->write("\n".\sprintf('### Listener %d', $order + 1)."\n");
|
||||
$this->describeCallable($eventListener);
|
||||
$this->write(sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($eventListened, $eventListener))."\n");
|
||||
$this->write(\sprintf('- Priority: `%d`', $eventDispatcher->getListenerPriority($eventListened, $eventListener))."\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -361,16 +361,16 @@ class MarkdownDescriptor extends Descriptor
|
||||
$string .= "\n- Type: `function`";
|
||||
|
||||
if (\is_object($callable[0])) {
|
||||
$string .= "\n".sprintf('- Name: `%s`', $callable[1]);
|
||||
$string .= "\n".sprintf('- Class: `%s`', $callable[0]::class);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $callable[1]);
|
||||
$string .= "\n".\sprintf('- Class: `%s`', $callable[0]::class);
|
||||
} else {
|
||||
if (!str_starts_with($callable[1], 'parent::')) {
|
||||
$string .= "\n".sprintf('- Name: `%s`', $callable[1]);
|
||||
$string .= "\n".sprintf('- Class: `%s`', $callable[0]);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $callable[1]);
|
||||
$string .= "\n".\sprintf('- Class: `%s`', $callable[0]);
|
||||
$string .= "\n- Static: yes";
|
||||
} else {
|
||||
$string .= "\n".sprintf('- Name: `%s`', substr($callable[1], 8));
|
||||
$string .= "\n".sprintf('- Class: `%s`', $callable[0]);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', substr($callable[1], 8));
|
||||
$string .= "\n".\sprintf('- Class: `%s`', $callable[0]);
|
||||
$string .= "\n- Static: yes";
|
||||
$string .= "\n- Parent: yes";
|
||||
}
|
||||
@@ -385,12 +385,12 @@ class MarkdownDescriptor extends Descriptor
|
||||
$string .= "\n- Type: `function`";
|
||||
|
||||
if (!str_contains($callable, '::')) {
|
||||
$string .= "\n".sprintf('- Name: `%s`', $callable);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $callable);
|
||||
} else {
|
||||
$callableParts = explode('::', $callable);
|
||||
|
||||
$string .= "\n".sprintf('- Name: `%s`', $callableParts[1]);
|
||||
$string .= "\n".sprintf('- Class: `%s`', $callableParts[0]);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $callableParts[1]);
|
||||
$string .= "\n".\sprintf('- Class: `%s`', $callableParts[0]);
|
||||
$string .= "\n- Static: yes";
|
||||
}
|
||||
|
||||
@@ -408,10 +408,10 @@ class MarkdownDescriptor extends Descriptor
|
||||
|
||||
return;
|
||||
}
|
||||
$string .= "\n".sprintf('- Name: `%s`', $r->name);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $r->name);
|
||||
|
||||
if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
|
||||
$string .= "\n".sprintf('- Class: `%s`', $class->name);
|
||||
$string .= "\n".\sprintf('- Class: `%s`', $class->name);
|
||||
if (!$r->getClosureThis()) {
|
||||
$string .= "\n- Static: yes";
|
||||
}
|
||||
@@ -424,7 +424,7 @@ class MarkdownDescriptor extends Descriptor
|
||||
|
||||
if (method_exists($callable, '__invoke')) {
|
||||
$string .= "\n- Type: `object`";
|
||||
$string .= "\n".sprintf('- Name: `%s`', $callable::class);
|
||||
$string .= "\n".\sprintf('- Name: `%s`', $callable::class);
|
||||
|
||||
$this->write($string."\n");
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ class TextDescriptor extends Descriptor
|
||||
|
||||
if (isset($deprecatedParameters[$parameter])) {
|
||||
$tableRows[] = [new TableCell(
|
||||
sprintf('<comment>(Since %s %s: %s)</comment>', $deprecatedParameters[$parameter][0], $deprecatedParameters[$parameter][1], sprintf(...\array_slice($deprecatedParameters[$parameter], 2))),
|
||||
\sprintf('<comment>(Since %s %s: %s)</comment>', $deprecatedParameters[$parameter][0], $deprecatedParameters[$parameter][1], \sprintf(...\array_slice($deprecatedParameters[$parameter], 2))),
|
||||
['colspan' => 2]
|
||||
)];
|
||||
}
|
||||
@@ -154,7 +154,7 @@ class TextDescriptor extends Descriptor
|
||||
}
|
||||
|
||||
foreach ($this->findDefinitionsByTag($container, $showHidden) as $tag => $definitions) {
|
||||
$options['output']->section(sprintf('"%s" tag', $tag));
|
||||
$options['output']->section(\sprintf('"%s" tag', $tag));
|
||||
$options['output']->listing(array_keys($definitions));
|
||||
}
|
||||
}
|
||||
@@ -170,7 +170,7 @@ class TextDescriptor extends Descriptor
|
||||
} elseif ($service instanceof Definition) {
|
||||
$this->describeContainerDefinition($service, $options, $container);
|
||||
} else {
|
||||
$options['output']->title(sprintf('Information for Service "<info>%s</info>"', $options['id']));
|
||||
$options['output']->title(\sprintf('Information for Service "<info>%s</info>"', $options['id']));
|
||||
$options['output']->table(
|
||||
['Service ID', 'Class'],
|
||||
[
|
||||
@@ -192,7 +192,7 @@ class TextDescriptor extends Descriptor
|
||||
}
|
||||
|
||||
if ($showTag) {
|
||||
$title .= sprintf(' Tagged with "%s" Tag', $options['tag']);
|
||||
$title .= \sprintf(' Tagged with "%s" Tag', $options['tag']);
|
||||
}
|
||||
|
||||
$options['output']->title($title);
|
||||
@@ -249,7 +249,7 @@ class TextDescriptor extends Descriptor
|
||||
foreach ($serviceIds as $serviceId) {
|
||||
$definition = $this->resolveServiceDefinition($container, $serviceId);
|
||||
|
||||
$styledServiceId = $rawOutput ? $serviceId : sprintf('<fg=cyan>%s</fg=cyan>', OutputFormatter::escape($serviceId));
|
||||
$styledServiceId = $rawOutput ? $serviceId : \sprintf('<fg=cyan>%s</fg=cyan>', OutputFormatter::escape($serviceId));
|
||||
if ($definition instanceof Definition) {
|
||||
if ($showTag) {
|
||||
foreach ($this->sortByPriority($definition->getTag($showTag)) as $key => $tag) {
|
||||
@@ -272,7 +272,7 @@ class TextDescriptor extends Descriptor
|
||||
}
|
||||
} elseif ($definition instanceof Alias) {
|
||||
$alias = $definition;
|
||||
$tableRows[] = array_merge([$styledServiceId, sprintf('alias for "%s"', $alias)], $tagsCount ? array_fill(0, $tagsCount, '') : []);
|
||||
$tableRows[] = array_merge([$styledServiceId, \sprintf('alias for "%s"', $alias)], $tagsCount ? array_fill(0, $tagsCount, '') : []);
|
||||
} else {
|
||||
$tableRows[] = array_merge([$styledServiceId, $definition::class], $tagsCount ? array_fill(0, $tagsCount, '') : []);
|
||||
}
|
||||
@@ -284,7 +284,7 @@ class TextDescriptor extends Descriptor
|
||||
protected function describeContainerDefinition(Definition $definition, array $options = [], ?ContainerBuilder $container = null): void
|
||||
{
|
||||
if (isset($options['id'])) {
|
||||
$options['output']->title(sprintf('Information for Service "<info>%s</info>"', $options['id']));
|
||||
$options['output']->title(\sprintf('Information for Service "<info>%s</info>"', $options['id']));
|
||||
}
|
||||
|
||||
if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) {
|
||||
@@ -301,13 +301,13 @@ class TextDescriptor extends Descriptor
|
||||
$tagInformation = [];
|
||||
foreach ($tags as $tagName => $tagData) {
|
||||
foreach ($tagData as $tagParameters) {
|
||||
$parameters = array_map(fn ($key, $value) => sprintf('<info>%s</info>: %s', $key, \is_array($value) ? $this->formatParameter($value) : $value), array_keys($tagParameters), array_values($tagParameters));
|
||||
$parameters = array_map(fn ($key, $value) => \sprintf('<info>%s</info>: %s', $key, \is_array($value) ? $this->formatParameter($value) : $value), array_keys($tagParameters), array_values($tagParameters));
|
||||
$parameters = implode(', ', $parameters);
|
||||
|
||||
if ('' === $parameters) {
|
||||
$tagInformation[] = sprintf('%s', $tagName);
|
||||
$tagInformation[] = \sprintf('%s', $tagName);
|
||||
} else {
|
||||
$tagInformation[] = sprintf('%s (%s)', $tagName, $parameters);
|
||||
$tagInformation[] = \sprintf('%s (%s)', $tagName, $parameters);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -343,7 +343,7 @@ class TextDescriptor extends Descriptor
|
||||
if ($factory[0] instanceof Reference) {
|
||||
$tableRows[] = ['Factory Service', $factory[0]];
|
||||
} elseif ($factory[0] instanceof Definition) {
|
||||
$tableRows[] = ['Factory Service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured')];
|
||||
$tableRows[] = ['Factory Service', \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured')];
|
||||
} else {
|
||||
$tableRows[] = ['Factory Class', $factory[0]];
|
||||
}
|
||||
@@ -361,27 +361,27 @@ class TextDescriptor extends Descriptor
|
||||
$argument = $argument->getValues()[0];
|
||||
}
|
||||
if ($argument instanceof Reference) {
|
||||
$argumentsInformation[] = sprintf('Service(%s)', (string) $argument);
|
||||
$argumentsInformation[] = \sprintf('Service(%s)', (string) $argument);
|
||||
} elseif ($argument instanceof IteratorArgument) {
|
||||
if ($argument instanceof TaggedIteratorArgument) {
|
||||
$argumentsInformation[] = sprintf('Tagged Iterator for "%s"%s', $argument->getTag(), $options['is_debug'] ? '' : sprintf(' (%d element(s))', \count($argument->getValues())));
|
||||
$argumentsInformation[] = \sprintf('Tagged Iterator for "%s"%s', $argument->getTag(), $options['is_debug'] ? '' : \sprintf(' (%d element(s))', \count($argument->getValues())));
|
||||
} else {
|
||||
$argumentsInformation[] = sprintf('Iterator (%d element(s))', \count($argument->getValues()));
|
||||
$argumentsInformation[] = \sprintf('Iterator (%d element(s))', \count($argument->getValues()));
|
||||
}
|
||||
|
||||
foreach ($argument->getValues() as $ref) {
|
||||
$argumentsInformation[] = sprintf('- Service(%s)', $ref);
|
||||
$argumentsInformation[] = \sprintf('- Service(%s)', $ref);
|
||||
}
|
||||
} elseif ($argument instanceof ServiceLocatorArgument) {
|
||||
$argumentsInformation[] = sprintf('Service locator (%d element(s))', \count($argument->getValues()));
|
||||
$argumentsInformation[] = \sprintf('Service locator (%d element(s))', \count($argument->getValues()));
|
||||
} elseif ($argument instanceof Definition) {
|
||||
$argumentsInformation[] = 'Inlined Service';
|
||||
} elseif ($argument instanceof \UnitEnum) {
|
||||
$argumentsInformation[] = ltrim(var_export($argument, true), '\\');
|
||||
} elseif ($argument instanceof AbstractArgument) {
|
||||
$argumentsInformation[] = sprintf('Abstract argument (%s)', $argument->getText());
|
||||
$argumentsInformation[] = \sprintf('Abstract argument (%s)', $argument->getText());
|
||||
} else {
|
||||
$argumentsInformation[] = \is_array($argument) ? sprintf('Array (%d element(s))', \count($argument)) : $argument;
|
||||
$argumentsInformation[] = \is_array($argument) ? \sprintf('Array (%d element(s))', \count($argument)) : $argument;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ class TextDescriptor extends Descriptor
|
||||
|
||||
protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
|
||||
{
|
||||
$containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
$containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
if (!file_exists($containerDeprecationFilePath)) {
|
||||
$options['output']->warning('The deprecation file does not exist, please try warming the cache first.');
|
||||
|
||||
@@ -413,19 +413,19 @@ class TextDescriptor extends Descriptor
|
||||
$formattedLogs = [];
|
||||
$remainingCount = 0;
|
||||
foreach ($logs as $log) {
|
||||
$formattedLogs[] = sprintf("%sx: %s\n in %s:%s", $log['count'], $log['message'], $log['file'], $log['line']);
|
||||
$formattedLogs[] = \sprintf("%sx: %s\n in %s:%s", $log['count'], $log['message'], $log['file'], $log['line']);
|
||||
$remainingCount += $log['count'];
|
||||
}
|
||||
$options['output']->title(sprintf('Remaining deprecations (%s)', $remainingCount));
|
||||
$options['output']->title(\sprintf('Remaining deprecations (%s)', $remainingCount));
|
||||
$options['output']->listing($formattedLogs);
|
||||
}
|
||||
|
||||
protected function describeContainerAlias(Alias $alias, array $options = [], ?ContainerBuilder $container = null): void
|
||||
{
|
||||
if ($alias->isPublic() && !$alias->isPrivate()) {
|
||||
$options['output']->comment(sprintf('This service is a <info>public</info> alias for the service <info>%s</info>', (string) $alias));
|
||||
$options['output']->comment(\sprintf('This service is a <info>public</info> alias for the service <info>%s</info>', (string) $alias));
|
||||
} else {
|
||||
$options['output']->comment(sprintf('This service is a <comment>private</comment> alias for the service <info>%s</info>', (string) $alias));
|
||||
$options['output']->comment(\sprintf('This service is a <comment>private</comment> alias for the service <info>%s</info>', (string) $alias));
|
||||
}
|
||||
|
||||
if (!$container) {
|
||||
@@ -444,7 +444,7 @@ class TextDescriptor extends Descriptor
|
||||
|
||||
if ($deprecation) {
|
||||
$rows[] = [new TableCell(
|
||||
sprintf('<comment>(Since %s %s: %s)</comment>', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))),
|
||||
\sprintf('<comment>(Since %s %s: %s)</comment>', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))),
|
||||
['colspan' => 2]
|
||||
)];
|
||||
}
|
||||
@@ -522,11 +522,11 @@ class TextDescriptor extends Descriptor
|
||||
$title = 'Registered Listeners';
|
||||
|
||||
if (null !== $dispatcherServiceName) {
|
||||
$title .= sprintf(' of Event Dispatcher "%s"', $dispatcherServiceName);
|
||||
$title .= \sprintf(' of Event Dispatcher "%s"', $dispatcherServiceName);
|
||||
}
|
||||
|
||||
if (null !== $event) {
|
||||
$title .= sprintf(' for "%s" Event', $event);
|
||||
$title .= \sprintf(' for "%s" Event', $event);
|
||||
$registeredListeners = $eventDispatcher->getListeners($event);
|
||||
} else {
|
||||
$title .= ' Grouped by Event';
|
||||
@@ -540,7 +540,7 @@ class TextDescriptor extends Descriptor
|
||||
} else {
|
||||
ksort($registeredListeners);
|
||||
foreach ($registeredListeners as $eventListened => $eventListeners) {
|
||||
$options['output']->section(sprintf('"%s" event', $eventListened));
|
||||
$options['output']->section(\sprintf('"%s" event', $eventListened));
|
||||
$this->renderEventListenerTable($eventDispatcher, $eventListened, $eventListeners, $options['output']);
|
||||
}
|
||||
}
|
||||
@@ -557,7 +557,7 @@ class TextDescriptor extends Descriptor
|
||||
$tableRows = [];
|
||||
|
||||
foreach ($eventListeners as $order => $listener) {
|
||||
$tableRows[] = [sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener)];
|
||||
$tableRows[] = [\sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener)];
|
||||
}
|
||||
|
||||
$io->table($tableHeaders, $tableRows);
|
||||
@@ -573,7 +573,7 @@ class TextDescriptor extends Descriptor
|
||||
|
||||
$configAsString = '';
|
||||
foreach ($config as $key => $value) {
|
||||
$configAsString .= sprintf("\n%s: %s", $key, $this->formatValue($value));
|
||||
$configAsString .= \sprintf("\n%s: %s", $key, $this->formatValue($value));
|
||||
}
|
||||
|
||||
return trim($configAsString);
|
||||
@@ -627,7 +627,7 @@ class TextDescriptor extends Descriptor
|
||||
|
||||
$fileLink = $this->fileLinkFormatter->format($r->getFileName(), $r->getStartLine());
|
||||
if ($fileLink) {
|
||||
return sprintf('<href=%s>%s</>', $fileLink, $anchorText);
|
||||
return \sprintf('<href=%s>%s</>', $fileLink, $anchorText);
|
||||
}
|
||||
|
||||
return $anchorText;
|
||||
@@ -637,14 +637,14 @@ class TextDescriptor extends Descriptor
|
||||
{
|
||||
if (\is_array($callable)) {
|
||||
if (\is_object($callable[0])) {
|
||||
return sprintf('%s::%s()', $callable[0]::class, $callable[1]);
|
||||
return \sprintf('%s::%s()', $callable[0]::class, $callable[1]);
|
||||
}
|
||||
|
||||
return sprintf('%s::%s()', $callable[0], $callable[1]);
|
||||
return \sprintf('%s::%s()', $callable[0], $callable[1]);
|
||||
}
|
||||
|
||||
if (\is_string($callable)) {
|
||||
return sprintf('%s()', $callable);
|
||||
return \sprintf('%s()', $callable);
|
||||
}
|
||||
|
||||
if ($callable instanceof \Closure) {
|
||||
@@ -653,14 +653,14 @@ class TextDescriptor extends Descriptor
|
||||
return 'Closure()';
|
||||
}
|
||||
if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
|
||||
return sprintf('%s::%s()', $class->name, $r->name);
|
||||
return \sprintf('%s::%s()', $class->name, $r->name);
|
||||
}
|
||||
|
||||
return $r->name.'()';
|
||||
}
|
||||
|
||||
if (method_exists($callable, '__invoke')) {
|
||||
return sprintf('%s::__invoke()', $callable::class);
|
||||
return \sprintf('%s::__invoke()', $callable::class);
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('Callable is not describable.');
|
||||
|
||||
@@ -110,7 +110,7 @@ class XmlDescriptor extends Descriptor
|
||||
|
||||
protected function describeContainerDeprecations(ContainerBuilder $container, array $options = []): void
|
||||
{
|
||||
$containerDeprecationFilePath = sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
$containerDeprecationFilePath = \sprintf('%s/%sDeprecations.log', $container->getParameter('kernel.build_dir'), $container->getParameter('kernel.container_class'));
|
||||
if (!file_exists($containerDeprecationFilePath)) {
|
||||
throw new RuntimeException('The deprecation file does not exist, please try warming the cache first.');
|
||||
}
|
||||
@@ -243,7 +243,7 @@ class XmlDescriptor extends Descriptor
|
||||
$parameterXML->appendChild(new \DOMText($this->formatParameter($value)));
|
||||
|
||||
if (isset($deprecatedParameters[$key])) {
|
||||
$parameterXML->setAttribute('deprecated', sprintf('Since %s %s: %s', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], sprintf(...\array_slice($deprecatedParameters[$key], 2))));
|
||||
$parameterXML->setAttribute('deprecated', \sprintf('Since %s %s: %s', $deprecatedParameters[$key][0], $deprecatedParameters[$key][1], \sprintf(...\array_slice($deprecatedParameters[$key], 2))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ class XmlDescriptor extends Descriptor
|
||||
if ($factory[0] instanceof Reference) {
|
||||
$factoryXML->setAttribute('service', (string) $factory[0]);
|
||||
} elseif ($factory[0] instanceof Definition) {
|
||||
$factoryXML->setAttribute('service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'not configured'));
|
||||
$factoryXML->setAttribute('service', \sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'not configured'));
|
||||
} else {
|
||||
$factoryXML->setAttribute('class', $factory[0]);
|
||||
}
|
||||
@@ -490,7 +490,7 @@ class XmlDescriptor extends Descriptor
|
||||
$parameterXML->setAttribute('key', $options['parameter']);
|
||||
|
||||
if ($deprecation) {
|
||||
$parameterXML->setAttribute('deprecated', sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], sprintf(...\array_slice($deprecation, 2))));
|
||||
$parameterXML->setAttribute('deprecated', \sprintf('Since %s %s: %s', $deprecation[0], $deprecation[1], \sprintf(...\array_slice($deprecation, 2))));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ abstract class AbstractController implements ServiceSubscriberInterface
|
||||
protected function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null
|
||||
{
|
||||
if (!$this->container->has('parameter_bag')) {
|
||||
throw new ServiceNotFoundException('parameter_bag.', null, null, [], sprintf('The "%s::getParameter()" method is missing a parameter bag to work properly. Did you forget to register your controller as a service subscriber? This can be fixed either by using autoconfiguration or by manually wiring a "parameter_bag" in the service locator passed to the controller.', static::class));
|
||||
throw new ServiceNotFoundException('parameter_bag.', null, null, [], \sprintf('The "%s::getParameter()" method is missing a parameter bag to work properly. Did you forget to register your controller as a service subscriber? This can be fixed either by using autoconfiguration or by manually wiring a "parameter_bag" in the service locator passed to the controller.', static::class));
|
||||
}
|
||||
|
||||
return $this->container->get('parameter_bag')->get($name);
|
||||
@@ -432,7 +432,7 @@ abstract class AbstractController implements ServiceSubscriberInterface
|
||||
private function doRenderView(string $view, ?string $block, array $parameters, string $method): string
|
||||
{
|
||||
if (!$this->container->has('twig')) {
|
||||
throw new \LogicException(sprintf('You cannot use the "%s" method if the Twig Bundle is not available. Try running "composer require symfony/twig-bundle".', $method));
|
||||
throw new \LogicException(\sprintf('You cannot use the "%s" method if the Twig Bundle is not available. Try running "composer require symfony/twig-bundle".', $method));
|
||||
}
|
||||
|
||||
foreach ($parameters as $k => $v) {
|
||||
|
||||
@@ -31,7 +31,7 @@ class ControllerResolver extends ContainerControllerResolver
|
||||
}
|
||||
if ($controller instanceof AbstractController) {
|
||||
if (null === $previousContainer = $controller->setContainer($this->container)) {
|
||||
throw new \LogicException(sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
|
||||
throw new \LogicException(\sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
|
||||
} else {
|
||||
$controller->setContainer($previousContainer);
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ class RedirectController
|
||||
|
||||
if (\array_key_exists('route', $p)) {
|
||||
if (\array_key_exists('path', $p)) {
|
||||
throw new \RuntimeException(sprintf('Ambiguous redirection settings, use the "path" or "route" parameter, not both: "%s" and "%s" found respectively in "%s" routing configuration.', $p['path'], $p['route'], $request->attributes->get('_route')));
|
||||
throw new \RuntimeException(\sprintf('Ambiguous redirection settings, use the "path" or "route" parameter, not both: "%s" and "%s" found respectively in "%s" routing configuration.', $p['path'], $p['route'], $request->attributes->get('_route')));
|
||||
}
|
||||
|
||||
return $this->redirectAction($request, $p['route'], $p['permanent'] ?? false, $p['ignoreAttributes'] ?? false, $p['keepRequestMethod'] ?? false, $p['keepQueryParams'] ?? false);
|
||||
@@ -186,6 +186,6 @@ class RedirectController
|
||||
return $this->urlRedirectAction($request, $p['path'], $p['permanent'] ?? false, $p['scheme'] ?? null, $p['httpPort'] ?? null, $p['httpsPort'] ?? null, $p['keepRequestMethod'] ?? false);
|
||||
}
|
||||
|
||||
throw new \RuntimeException(sprintf('The parameter "path" or "route" is required to configure the redirect action in "%s" routing configuration.', $request->attributes->get('_route')));
|
||||
throw new \RuntimeException(\sprintf('The parameter "path" or "route" is required to configure the redirect action in "%s" routing configuration.', $request->attributes->get('_route')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ class LoggingTranslatorPass implements CompilerPassInterface
|
||||
$class = $container->getParameterBag()->resolveValue($definition->getClass());
|
||||
|
||||
if (!$r = $container->getReflectionClass($class)) {
|
||||
throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
|
||||
throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $translatorAlias));
|
||||
}
|
||||
if ($r->isSubclassOf(TranslatorInterface::class) && $r->isSubclassOf(TranslatorBagInterface::class)) {
|
||||
$container->getDefinition('translator.logging')->setDecoratedService('translator');
|
||||
|
||||
@@ -45,7 +45,7 @@ class ProfilerPass implements CompilerPassInterface
|
||||
if (isset($attributes[0]['template']) || is_subclass_of($collectorClass, TemplateAwareDataCollectorInterface::class)) {
|
||||
$idForTemplate = $attributes[0]['id'] ?? $collectorClass;
|
||||
if (!$idForTemplate) {
|
||||
throw new InvalidArgumentException(sprintf('Data collector service "%s" must have an id attribute in order to specify a template.', $id));
|
||||
throw new InvalidArgumentException(\sprintf('Data collector service "%s" must have an id attribute in order to specify a template.', $id));
|
||||
}
|
||||
$template = [$idForTemplate, $attributes[0]['template'] ?? $collectorClass::getTemplate()];
|
||||
}
|
||||
|
||||
@@ -132,9 +132,9 @@ class UnusedTagsPass implements CompilerPassInterface
|
||||
}
|
||||
|
||||
$services = array_keys($container->findTaggedServiceIds($tag));
|
||||
$message = sprintf('Tag "%s" was defined on service(s) "%s", but was never used.', $tag, implode('", "', $services));
|
||||
$message = \sprintf('Tag "%s" was defined on service(s) "%s", but was never used.', $tag, implode('", "', $services));
|
||||
if ($candidates) {
|
||||
$message .= sprintf(' Did you mean "%s"?', implode('", "', $candidates));
|
||||
$message .= \sprintf(' Did you mean "%s"?', implode('", "', $candidates));
|
||||
}
|
||||
|
||||
$container->log($this, $message);
|
||||
|
||||
@@ -45,7 +45,7 @@ class WorkflowGuardListenerPass implements CompilerPassInterface
|
||||
|
||||
foreach ($servicesNeeded as $service) {
|
||||
if (!$container->has($service)) {
|
||||
throw new LogicException(sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
|
||||
throw new LogicException(\sprintf('The "%s" service is needed to be able to use the workflow guard listener.', $service));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ use Symfony\Component\Serializer\Encoder\JsonDecode;
|
||||
use Symfony\Component\Serializer\Serializer;
|
||||
use Symfony\Component\Translation\Translator;
|
||||
use Symfony\Component\Uid\Factory\UuidFactory;
|
||||
use Symfony\Component\Validator\Constraints\Email;
|
||||
use Symfony\Component\Validator\Validation;
|
||||
use Symfony\Component\Webhook\Controller\WebhookController;
|
||||
use Symfony\Component\WebLink\HttpHeaderSerializer;
|
||||
@@ -374,7 +373,7 @@ class Configuration implements ConfigurationInterface
|
||||
|
||||
foreach ($workflows as $key => $workflow) {
|
||||
if (isset($workflow['enabled']) && false === $workflow['enabled']) {
|
||||
throw new LogicException(sprintf('Cannot disable a single workflow. Remove the configuration for the workflow "%s" instead.', $key));
|
||||
throw new LogicException(\sprintf('Cannot disable a single workflow. Remove the configuration for the workflow "%s" instead.', $key));
|
||||
}
|
||||
|
||||
unset($workflows[$key]['enabled']);
|
||||
@@ -1067,7 +1066,7 @@ class Configuration implements ConfigurationInterface
|
||||
->validate()->castToArray()->end()
|
||||
->end()
|
||||
->scalarNode('translation_domain')->defaultValue('validators')->end()
|
||||
->enumNode('email_validation_mode')->values(array_merge(class_exists(Email::class) ? Email::VALIDATION_MODES : ['html5-allow-no-tld', 'html5', 'strict'], ['loose']))->end()
|
||||
->enumNode('email_validation_mode')->values(['html5', 'html5-allow-no-tld', 'strict', 'loose'])->end()
|
||||
->arrayNode('mapping')
|
||||
->addDefaultsIfNotSet()
|
||||
->fixXmlConfig('path')
|
||||
@@ -1426,7 +1425,7 @@ class Configuration implements ConfigurationInterface
|
||||
->info('The level of log message. Null to let Symfony decide.')
|
||||
->validate()
|
||||
->ifTrue(fn ($v) => null !== $v && !\in_array($v, $logLevels, true))
|
||||
->thenInvalid(sprintf('The log level is not valid. Pick one among "%s".', implode('", "', $logLevels)))
|
||||
->thenInvalid(\sprintf('The log level is not valid. Pick one among "%s".', implode('", "', $logLevels)))
|
||||
->end()
|
||||
->defaultNull()
|
||||
->end()
|
||||
@@ -1594,7 +1593,7 @@ class Configuration implements ConfigurationInterface
|
||||
->end()
|
||||
->validate()
|
||||
->ifTrue(fn ($v) => isset($v['buses']) && null !== $v['default_bus'] && !isset($v['buses'][$v['default_bus']]))
|
||||
->then(fn ($v) => throw new InvalidConfigurationException(sprintf('The specified default bus "%s" is not configured. Available buses are "%s".', $v['default_bus'], implode('", "', array_keys($v['buses'])))))
|
||||
->then(fn ($v) => throw new InvalidConfigurationException(\sprintf('The specified default bus "%s" is not configured. Available buses are "%s".', $v['default_bus'], implode('", "', array_keys($v['buses'])))))
|
||||
->end()
|
||||
->children()
|
||||
->arrayNode('routing')
|
||||
|
||||
@@ -679,7 +679,7 @@ class FrameworkExtension extends Extension
|
||||
$tagAttributes = get_object_vars($attribute);
|
||||
if ($reflector instanceof \ReflectionMethod) {
|
||||
if (isset($tagAttributes['method'])) {
|
||||
throw new LogicException(sprintf('AsEventListener attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
|
||||
throw new LogicException(\sprintf('AsEventListener attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
|
||||
}
|
||||
$tagAttributes['method'] = $reflector->getName();
|
||||
}
|
||||
@@ -697,7 +697,7 @@ class FrameworkExtension extends Extension
|
||||
unset($tagAttributes['fromTransport']);
|
||||
if ($reflector instanceof \ReflectionMethod) {
|
||||
if (isset($tagAttributes['method'])) {
|
||||
throw new LogicException(sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
|
||||
throw new LogicException(\sprintf('AsMessageHandler attribute cannot declare a method on "%s::%s()".', $reflector->class, $reflector->name));
|
||||
}
|
||||
$tagAttributes['method'] = $reflector->getName();
|
||||
}
|
||||
@@ -721,7 +721,7 @@ class FrameworkExtension extends Extension
|
||||
];
|
||||
if ($reflector instanceof \ReflectionMethod) {
|
||||
if (isset($tagAttributes['method'])) {
|
||||
throw new LogicException(sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
|
||||
throw new LogicException(\sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
|
||||
}
|
||||
$tagAttributes['method'] = $reflector->getName();
|
||||
}
|
||||
@@ -908,7 +908,7 @@ class FrameworkExtension extends Extension
|
||||
// Choose storage class based on the DSN
|
||||
[$class] = explode(':', $config['dsn'], 2);
|
||||
if ('file' !== $class) {
|
||||
throw new \LogicException(sprintf('Driver "%s" is not supported for the profiler.', $class));
|
||||
throw new \LogicException(\sprintf('Driver "%s" is not supported for the profiler.', $class));
|
||||
}
|
||||
|
||||
$container->setParameter('profiler.storage.dsn', $config['dsn']);
|
||||
@@ -947,7 +947,7 @@ class FrameworkExtension extends Extension
|
||||
|
||||
foreach ($config['workflows'] as $name => $workflow) {
|
||||
$type = $workflow['type'];
|
||||
$workflowId = sprintf('%s.%s', $type, $name);
|
||||
$workflowId = \sprintf('%s.%s', $type, $name);
|
||||
|
||||
// Process Metadata (workflow + places (transition is done in the "create transition" block))
|
||||
$metadataStoreDefinition = new Definition(Workflow\Metadata\InMemoryMetadataStore::class, [[], [], null]);
|
||||
@@ -973,18 +973,18 @@ class FrameworkExtension extends Extension
|
||||
foreach ($workflow['transitions'] as $transition) {
|
||||
if ('workflow' === $type) {
|
||||
$transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $transition['from'], $transition['to']]);
|
||||
$transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
|
||||
$transitionId = \sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
|
||||
$container->setDefinition($transitionId, $transitionDefinition);
|
||||
$transitions[] = new Reference($transitionId);
|
||||
if (isset($transition['guard'])) {
|
||||
$configuration = new Definition(Workflow\EventListener\GuardExpression::class);
|
||||
$configuration->addArgument(new Reference($transitionId));
|
||||
$configuration->addArgument($transition['guard']);
|
||||
$eventName = sprintf('workflow.%s.guard.%s', $name, $transition['name']);
|
||||
$eventName = \sprintf('workflow.%s.guard.%s', $name, $transition['name']);
|
||||
$guardsConfiguration[$eventName][] = $configuration;
|
||||
}
|
||||
if ($transition['metadata']) {
|
||||
$transitionsMetadataDefinition->addMethodCall('attach', [
|
||||
$transitionsMetadataDefinition->addMethodCall('offsetSet', [
|
||||
new Reference($transitionId),
|
||||
$transition['metadata'],
|
||||
]);
|
||||
@@ -993,18 +993,18 @@ class FrameworkExtension extends Extension
|
||||
foreach ($transition['from'] as $from) {
|
||||
foreach ($transition['to'] as $to) {
|
||||
$transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $from, $to]);
|
||||
$transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
|
||||
$transitionId = \sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
|
||||
$container->setDefinition($transitionId, $transitionDefinition);
|
||||
$transitions[] = new Reference($transitionId);
|
||||
if (isset($transition['guard'])) {
|
||||
$configuration = new Definition(Workflow\EventListener\GuardExpression::class);
|
||||
$configuration->addArgument(new Reference($transitionId));
|
||||
$configuration->addArgument($transition['guard']);
|
||||
$eventName = sprintf('workflow.%s.guard.%s', $name, $transition['name']);
|
||||
$eventName = \sprintf('workflow.%s.guard.%s', $name, $transition['name']);
|
||||
$guardsConfiguration[$eventName][] = $configuration;
|
||||
}
|
||||
if ($transition['metadata']) {
|
||||
$transitionsMetadataDefinition->addMethodCall('attach', [
|
||||
$transitionsMetadataDefinition->addMethodCall('offsetSet', [
|
||||
new Reference($transitionId),
|
||||
$transition['metadata'],
|
||||
]);
|
||||
@@ -1014,7 +1014,7 @@ class FrameworkExtension extends Extension
|
||||
}
|
||||
}
|
||||
$metadataStoreDefinition->replaceArgument(2, $transitionsMetadataDefinition);
|
||||
$container->setDefinition(sprintf('%s.metadata_store', $workflowId), $metadataStoreDefinition);
|
||||
$container->setDefinition(\sprintf('%s.metadata_store', $workflowId), $metadataStoreDefinition);
|
||||
|
||||
// Create places
|
||||
$places = array_column($workflow['places'], 'name');
|
||||
@@ -1025,7 +1025,7 @@ class FrameworkExtension extends Extension
|
||||
$definitionDefinition->addArgument($places);
|
||||
$definitionDefinition->addArgument($transitions);
|
||||
$definitionDefinition->addArgument($initialMarking);
|
||||
$definitionDefinition->addArgument(new Reference(sprintf('%s.metadata_store', $workflowId)));
|
||||
$definitionDefinition->addArgument(new Reference(\sprintf('%s.metadata_store', $workflowId)));
|
||||
|
||||
// Create MarkingStore
|
||||
$markingStoreDefinition = null;
|
||||
@@ -1040,8 +1040,8 @@ class FrameworkExtension extends Extension
|
||||
}
|
||||
|
||||
// Create Workflow
|
||||
$workflowDefinition = new ChildDefinition(sprintf('%s.abstract', $type));
|
||||
$workflowDefinition->replaceArgument(0, new Reference(sprintf('%s.definition', $workflowId)));
|
||||
$workflowDefinition = new ChildDefinition(\sprintf('%s.abstract', $type));
|
||||
$workflowDefinition->replaceArgument(0, new Reference(\sprintf('%s.definition', $workflowId)));
|
||||
$workflowDefinition->replaceArgument(1, $markingStoreDefinition);
|
||||
$workflowDefinition->replaceArgument(3, $name);
|
||||
$workflowDefinition->replaceArgument(4, $workflow['events_to_dispatch']);
|
||||
@@ -1055,7 +1055,7 @@ class FrameworkExtension extends Extension
|
||||
|
||||
// Store to container
|
||||
$container->setDefinition($workflowId, $workflowDefinition);
|
||||
$container->setDefinition(sprintf('%s.definition', $workflowId), $definitionDefinition);
|
||||
$container->setDefinition(\sprintf('%s.definition', $workflowId), $definitionDefinition);
|
||||
$container->registerAliasForArgument($workflowId, WorkflowInterface::class, $name.'.'.$type);
|
||||
$container->registerAliasForArgument($workflowId, WorkflowInterface::class, $name);
|
||||
|
||||
@@ -1084,11 +1084,11 @@ class FrameworkExtension extends Extension
|
||||
if ($workflow['audit_trail']['enabled']) {
|
||||
$listener = new Definition(Workflow\EventListener\AuditTrailListener::class);
|
||||
$listener->addTag('monolog.logger', ['channel' => 'workflow']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.leave', $name), 'method' => 'onLeave']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.transition', $name), 'method' => 'onTransition']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.enter', $name), 'method' => 'onEnter']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.leave', $name), 'method' => 'onLeave']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.transition', $name), 'method' => 'onTransition']);
|
||||
$listener->addTag('kernel.event_listener', ['event' => \sprintf('workflow.%s.enter', $name), 'method' => 'onEnter']);
|
||||
$listener->addArgument(new Reference('logger'));
|
||||
$container->setDefinition(sprintf('.%s.listener.audit_trail', $workflowId), $listener);
|
||||
$container->setDefinition(\sprintf('.%s.listener.audit_trail', $workflowId), $listener);
|
||||
}
|
||||
|
||||
// Add Guard Listener
|
||||
@@ -1116,7 +1116,7 @@ class FrameworkExtension extends Extension
|
||||
$guard->addTag('kernel.event_listener', ['event' => $eventName, 'method' => 'onTransition']);
|
||||
}
|
||||
|
||||
$container->setDefinition(sprintf('.%s.listener.guard', $workflowId), $guard);
|
||||
$container->setDefinition(\sprintf('.%s.listener.guard', $workflowId), $guard);
|
||||
$container->setParameter('workflow.has_guard_listeners', true);
|
||||
}
|
||||
}
|
||||
@@ -1136,7 +1136,7 @@ class FrameworkExtension extends Extension
|
||||
$tagAttributes = get_object_vars($attribute);
|
||||
if ($reflector instanceof \ReflectionMethod) {
|
||||
if (isset($tagAttributes['method'])) {
|
||||
throw new LogicException(sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
|
||||
throw new LogicException(\sprintf('"%s" attribute cannot declare a method on "%s::%s()".', $attribute::class, $reflector->class, $reflector->name));
|
||||
}
|
||||
$tagAttributes['method'] = $reflector->getName();
|
||||
}
|
||||
@@ -1349,7 +1349,7 @@ class FrameworkExtension extends Extension
|
||||
$paths = $config['paths'];
|
||||
foreach ($container->getParameter('kernel.bundles_metadata') as $name => $bundle) {
|
||||
if ($container->fileExists($dir = $bundle['path'].'/Resources/public') || $container->fileExists($dir = $bundle['path'].'/public')) {
|
||||
$paths[$dir] = sprintf('bundles/%s', preg_replace('/bundle$/', '', strtolower($name)));
|
||||
$paths[$dir] = \sprintf('bundles/%s', preg_replace('/bundle$/', '', strtolower($name)));
|
||||
}
|
||||
}
|
||||
$excludedPathPatterns = [];
|
||||
@@ -1525,7 +1525,7 @@ class FrameworkExtension extends Extension
|
||||
if ($container->fileExists($dir)) {
|
||||
$dirs[] = $transPaths[] = $dir;
|
||||
} else {
|
||||
throw new \UnexpectedValueException(sprintf('"%s" defined in translator.paths does not exist or is not a directory.', $dir));
|
||||
throw new \UnexpectedValueException(\sprintf('"%s" defined in translator.paths does not exist or is not a directory.', $dir));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1609,7 +1609,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($classToServices as $class => $service) {
|
||||
$package = substr($service, \strlen('translation.provider_factory.'));
|
||||
|
||||
if (!$container->hasDefinition('http_client') || !ContainerBuilder::willBeAvailable(sprintf('symfony/%s-translation-provider', $package), $class, $parentPackages)) {
|
||||
if (!$container->hasDefinition('http_client') || !ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-translation-provider', $package), $class, $parentPackages)) {
|
||||
$container->removeDefinition($service);
|
||||
}
|
||||
}
|
||||
@@ -1770,11 +1770,11 @@ class FrameworkExtension extends Extension
|
||||
$container->addResource(new DirectoryResource($path, '/^$/'));
|
||||
} elseif ($container->fileExists($path, false)) {
|
||||
if (!preg_match('/\.(xml|ya?ml)$/', $path, $matches)) {
|
||||
throw new \RuntimeException(sprintf('Unsupported mapping type in "%s", supported types are XML & Yaml.', $path));
|
||||
throw new \RuntimeException(\sprintf('Unsupported mapping type in "%s", supported types are XML & Yaml.', $path));
|
||||
}
|
||||
$fileRecorder($matches[1], $path);
|
||||
} else {
|
||||
throw new \RuntimeException(sprintf('Could not open file or directory "%s".', $path));
|
||||
throw new \RuntimeException(\sprintf('Could not open file or directory "%s".', $path));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1810,7 +1810,7 @@ class FrameworkExtension extends Extension
|
||||
$cacheDir = $container->getParameterBag()->resolveValue($config['file_cache_dir']);
|
||||
|
||||
if (!is_dir($cacheDir) && false === @mkdir($cacheDir, 0777, true) && !is_dir($cacheDir)) {
|
||||
throw new \RuntimeException(sprintf('Could not create cache directory "%s".', $cacheDir));
|
||||
throw new \RuntimeException(\sprintf('Could not create cache directory "%s".', $cacheDir));
|
||||
}
|
||||
|
||||
$container
|
||||
@@ -1882,7 +1882,7 @@ class FrameworkExtension extends Extension
|
||||
|
||||
if ($config['decryption_env_var']) {
|
||||
if (!preg_match('/^(?:[-.\w\\\\]*+:)*+\w++$/', $config['decryption_env_var'])) {
|
||||
throw new InvalidArgumentException(sprintf('Invalid value "%s" set as "decryption_env_var": only "word" characters are allowed.', $config['decryption_env_var']));
|
||||
throw new InvalidArgumentException(\sprintf('Invalid value "%s" set as "decryption_env_var": only "word" characters are allowed.', $config['decryption_env_var']));
|
||||
}
|
||||
|
||||
if (ContainerBuilder::willBeAvailable('symfony/string', LazyString::class, ['symfony/framework-bundle'])) {
|
||||
@@ -2260,7 +2260,7 @@ class FrameworkExtension extends Extension
|
||||
$failureTransports = [];
|
||||
if ($config['failure_transport']) {
|
||||
if (!isset($config['transports'][$config['failure_transport']])) {
|
||||
throw new LogicException(sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $config['failure_transport']));
|
||||
throw new LogicException(\sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $config['failure_transport']));
|
||||
}
|
||||
|
||||
$container->setAlias('messenger.failure_transports.default', 'messenger.transport.'.$config['failure_transport']);
|
||||
@@ -2300,7 +2300,7 @@ class FrameworkExtension extends Extension
|
||||
if (null !== $transport['retry_strategy']['service']) {
|
||||
$transportRetryReferences[$name] = new Reference($transport['retry_strategy']['service']);
|
||||
} else {
|
||||
$retryServiceId = sprintf('messenger.retry.multiplier_retry_strategy.%s', $name);
|
||||
$retryServiceId = \sprintf('messenger.retry.multiplier_retry_strategy.%s', $name);
|
||||
$retryDefinition = new ChildDefinition('messenger.retry.abstract_multiplier_retry_strategy');
|
||||
$retryDefinition
|
||||
->replaceArgument(0, $transport['retry_strategy']['max_retries'])
|
||||
@@ -2334,7 +2334,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($config['transports'] as $name => $transport) {
|
||||
if ($transport['failure_transport']) {
|
||||
if (!isset($senderReferences[$transport['failure_transport']])) {
|
||||
throw new LogicException(sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $transport['failure_transport']));
|
||||
throw new LogicException(\sprintf('Invalid Messenger configuration: the failure transport "%s" is not a valid transport or service id.', $transport['failure_transport']));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2345,16 +2345,16 @@ class FrameworkExtension extends Extension
|
||||
foreach ($config['routing'] as $message => $messageConfiguration) {
|
||||
if ('*' !== $message && !class_exists($message) && !interface_exists($message, false) && !preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+\\\\)++\*$/', $message)) {
|
||||
if (str_contains($message, '*')) {
|
||||
throw new LogicException(sprintf('Invalid Messenger routing configuration: invalid namespace "%s" wildcard.', $message));
|
||||
throw new LogicException(\sprintf('Invalid Messenger routing configuration: invalid namespace "%s" wildcard.', $message));
|
||||
}
|
||||
|
||||
throw new LogicException(sprintf('Invalid Messenger routing configuration: class or interface "%s" not found.', $message));
|
||||
throw new LogicException(\sprintf('Invalid Messenger routing configuration: class or interface "%s" not found.', $message));
|
||||
}
|
||||
|
||||
// make sure senderAliases contains all senders
|
||||
foreach ($messageConfiguration['senders'] as $sender) {
|
||||
if (!isset($senderReferences[$sender])) {
|
||||
throw new LogicException(sprintf('Invalid Messenger routing configuration: the "%s" class is being routed to a sender called "%s". This is not a valid transport or service id.', $message, $sender));
|
||||
throw new LogicException(\sprintf('Invalid Messenger routing configuration: the "%s" class is being routed to a sender called "%s". This is not a valid transport or service id.', $message, $sender));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2555,7 +2555,7 @@ class FrameworkExtension extends Extension
|
||||
|
||||
foreach ($config['scoped_clients'] as $name => $scopeConfig) {
|
||||
if ($container->has($name)) {
|
||||
throw new InvalidArgumentException(sprintf('Invalid scope name: "%s" is reserved.', $name));
|
||||
throw new InvalidArgumentException(\sprintf('Invalid scope name: "%s" is reserved.', $name));
|
||||
}
|
||||
|
||||
$scope = $scopeConfig['scope'] ?? null;
|
||||
@@ -2692,7 +2692,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($classToServices as $class => $service) {
|
||||
$package = substr($service, \strlen('mailer.transport_factory.'));
|
||||
|
||||
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
|
||||
if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
|
||||
$container->removeDefinition($service);
|
||||
}
|
||||
}
|
||||
@@ -2709,7 +2709,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($webhookRequestParsers as $class => $service) {
|
||||
$package = substr($service, \strlen('mailer.webhook.request_parser.'));
|
||||
|
||||
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
|
||||
if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
|
||||
$container->removeDefinition($service);
|
||||
}
|
||||
}
|
||||
@@ -2882,7 +2882,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($classToServices as $class => $service) {
|
||||
$package = substr($service, \strlen('notifier.transport_factory.'));
|
||||
|
||||
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-notifier', $package), $class, $parentPackages)) {
|
||||
if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-notifier', $package), $class, $parentPackages)) {
|
||||
$container->removeDefinition($service);
|
||||
}
|
||||
}
|
||||
@@ -2938,7 +2938,7 @@ class FrameworkExtension extends Extension
|
||||
foreach ($webhookRequestParsers as $class => $service) {
|
||||
$package = substr($service, \strlen('notifier.webhook.request_parser.'));
|
||||
|
||||
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-notifier', $package), $class, ['symfony/framework-bundle', 'symfony/notifier'])) {
|
||||
if (!ContainerBuilder::willBeAvailable(\sprintf('symfony/%s-notifier', $package), $class, ['symfony/framework-bundle', 'symfony/notifier'])) {
|
||||
$container->removeDefinition($service);
|
||||
}
|
||||
}
|
||||
@@ -2987,11 +2987,11 @@ class FrameworkExtension extends Extension
|
||||
|
||||
if (null !== $limiterConfig['lock_factory']) {
|
||||
if (!interface_exists(LockInterface::class)) {
|
||||
throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
|
||||
throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
|
||||
}
|
||||
|
||||
if (!$this->isInitializedConfigEnabled('lock')) {
|
||||
throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
|
||||
throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
|
||||
}
|
||||
|
||||
$limiter->replaceArgument(2, new Reference($limiterConfig['lock_factory']));
|
||||
@@ -3028,10 +3028,10 @@ class FrameworkExtension extends Extension
|
||||
|
||||
if (null !== $limiterConfig['lock_factory']) {
|
||||
if (!interface_exists(LockInterface::class)) {
|
||||
throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
|
||||
throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be installed. Try running "composer require symfony/lock".', $name));
|
||||
}
|
||||
if (!$container->hasDefinition('lock.factory.abstract')) {
|
||||
throw new LogicException(sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
|
||||
throw new LogicException(\sprintf('Rate limiter "%s" requires the Lock component to be configured.', $name));
|
||||
}
|
||||
|
||||
$limiter->replaceArgument(2, new Reference($limiterConfig['lock_factory']));
|
||||
@@ -3196,7 +3196,7 @@ class FrameworkExtension extends Extension
|
||||
return $this->configsEnabled[$path];
|
||||
}
|
||||
|
||||
throw new LogicException(sprintf('Can not read config enabled at "%s" because it has not been initialized.', $path));
|
||||
throw new LogicException(\sprintf('Can not read config enabled at "%s" because it has not been initialized.', $path));
|
||||
}
|
||||
|
||||
private function readConfigEnabled(string $path, ContainerBuilder $container, array $config): bool
|
||||
|
||||
@@ -109,6 +109,10 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$this->profiler->isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (null !== $sectionId = $request->attributes->get('_stopwatch_token')) {
|
||||
// we must close the section before saving the profile to allow late collect
|
||||
try {
|
||||
@@ -148,7 +152,7 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
|
||||
|
||||
if ($this->urlGenerator && $output) {
|
||||
$token = $p->getToken();
|
||||
$output->writeln(sprintf(
|
||||
$output->writeln(\sprintf(
|
||||
'See profile <href=%s>%s</>',
|
||||
$this->urlGenerator->generate('_profiler', ['token' => $token], UrlGeneratorInterface::ABSOLUTE_URL),
|
||||
$token
|
||||
|
||||
@@ -66,7 +66,7 @@ final class SuggestMissingPackageSubscriber implements EventSubscriberInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$message = sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);
|
||||
$message = \sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);
|
||||
$event->setError(new CommandNotFoundException($message));
|
||||
}
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ trait MicroKernelTrait
|
||||
}
|
||||
|
||||
$file = (new \ReflectionObject($this))->getFileName();
|
||||
/* @var ContainerPhpFileLoader $kernelLoader */
|
||||
/** @var ContainerPhpFileLoader $kernelLoader */
|
||||
$kernelLoader = $loader->getResolver()->resolve($file);
|
||||
$kernelLoader->setCurrentDir(\dirname($file));
|
||||
$instanceof = &\Closure::bind(fn &() => $this->instanceof, $kernelLoader, $kernelLoader)();
|
||||
@@ -204,7 +204,7 @@ trait MicroKernelTrait
|
||||
public function loadRoutes(LoaderInterface $loader): RouteCollection
|
||||
{
|
||||
$file = (new \ReflectionObject($this))->getFileName();
|
||||
/* @var RoutingPhpFileLoader $kernelLoader */
|
||||
/** @var RoutingPhpFileLoader $kernelLoader */
|
||||
$kernelLoader = $loader->getResolver()->resolve($file, 'php');
|
||||
$kernelLoader->setCurrentDir(\dirname($file));
|
||||
$collection = new RouteCollection();
|
||||
|
||||
@@ -117,11 +117,11 @@ class KernelBrowser extends HttpKernelBrowser
|
||||
$tokenAttributes = 2 < \func_num_args() ? func_get_arg(2) : [];
|
||||
|
||||
if (!interface_exists(UserInterface::class)) {
|
||||
throw new \LogicException(sprintf('"%s" requires symfony/security-core to be installed. Try running "composer require symfony/security-core".', __METHOD__));
|
||||
throw new \LogicException(\sprintf('"%s" requires symfony/security-core to be installed. Try running "composer require symfony/security-core".', __METHOD__));
|
||||
}
|
||||
|
||||
if (!$user instanceof UserInterface) {
|
||||
throw new \LogicException(sprintf('The first argument of "%s" must be instance of "%s", "%s" provided.', __METHOD__, UserInterface::class, get_debug_type($user)));
|
||||
throw new \LogicException(\sprintf('The first argument of "%s" must be instance of "%s", "%s" provided.', __METHOD__, UserInterface::class, get_debug_type($user)));
|
||||
}
|
||||
|
||||
$token = new TestBrowserToken($user->getRoles(), $user, $firewallContext);
|
||||
|
||||
@@ -88,7 +88,7 @@ return static function (ContainerConfigurator $container) {
|
||||
'', // namespace
|
||||
0, // default lifetime
|
||||
abstract_arg('version'),
|
||||
sprintf('%s/pools/system', param('kernel.cache_dir')),
|
||||
\sprintf('%s/pools/system', param('kernel.cache_dir')),
|
||||
service('logger')->ignoreOnInvalid(),
|
||||
])
|
||||
->tag('cache.pool', ['clearer' => 'cache.system_clearer', 'reset' => 'reset'])
|
||||
@@ -110,7 +110,7 @@ return static function (ContainerConfigurator $container) {
|
||||
->args([
|
||||
'', // namespace
|
||||
0, // default lifetime
|
||||
sprintf('%s/pools/app', param('kernel.cache_dir')),
|
||||
\sprintf('%s/pools/app', param('kernel.cache_dir')),
|
||||
service('cache.default_marshaller')->ignoreOnInvalid(),
|
||||
])
|
||||
->call('setLogger', [service('logger')->ignoreOnInvalid()])
|
||||
|
||||
@@ -56,7 +56,7 @@ return static function (ContainerConfigurator $container) {
|
||||
->set('data_collector.logger', LoggerDataCollector::class)
|
||||
->args([
|
||||
service('logger')->ignoreOnInvalid(),
|
||||
sprintf('%s/%s', param('kernel.build_dir'), param('kernel.container_class')),
|
||||
\sprintf('%s/%s', param('kernel.build_dir'), param('kernel.container_class')),
|
||||
service('.virtual_request_stack')->ignoreOnInvalid(),
|
||||
])
|
||||
->tag('monolog.logger', ['channel' => 'profiler'])
|
||||
|
||||
@@ -295,6 +295,7 @@
|
||||
<xsd:simpleType name="email-validation-mode">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="html5" />
|
||||
<xsd:enumeration value="html5-allow-no-tld" />
|
||||
<xsd:enumeration value="loose" />
|
||||
<xsd:enumeration value="strict" />
|
||||
</xsd:restriction>
|
||||
|
||||
@@ -131,7 +131,7 @@ return static function (ContainerConfigurator $container) {
|
||||
->args([
|
||||
tagged_iterator('kernel.cache_warmer'),
|
||||
param('kernel.debug'),
|
||||
sprintf('%s/%sDeprecations.log', param('kernel.build_dir'), param('kernel.container_class')),
|
||||
\sprintf('%s/%sDeprecations.log', param('kernel.build_dir'), param('kernel.container_class')),
|
||||
])
|
||||
->tag('container.no_preload')
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ class Router extends BaseRouter implements WarmableInterface, ServiceSubscriberI
|
||||
} elseif ($container instanceof SymfonyContainerInterface) {
|
||||
$this->paramFetcher = $container->getParameter(...);
|
||||
} else {
|
||||
throw new \LogicException(sprintf('You should either pass a "%s" instance or provide the $parameters argument of the "%s" method.', SymfonyContainerInterface::class, __METHOD__));
|
||||
throw new \LogicException(\sprintf('You should either pass a "%s" instance or provide the $parameters argument of the "%s" method.', SymfonyContainerInterface::class, __METHOD__));
|
||||
}
|
||||
|
||||
$this->defaultLocale = $defaultLocale;
|
||||
@@ -165,7 +165,7 @@ class Router extends BaseRouter implements WarmableInterface, ServiceSubscriberI
|
||||
}
|
||||
|
||||
if (preg_match('/^env\((?:\w++:)*+\w++\)$/', $match[1])) {
|
||||
throw new RuntimeException(sprintf('Using "%%%s%%" is not allowed in routing configuration.', $match[1]));
|
||||
throw new RuntimeException(\sprintf('Using "%%%s%%" is not allowed in routing configuration.', $match[1]));
|
||||
}
|
||||
|
||||
$resolved = ($this->paramFetcher)($match[1]);
|
||||
@@ -182,7 +182,7 @@ class Router extends BaseRouter implements WarmableInterface, ServiceSubscriberI
|
||||
}
|
||||
}
|
||||
|
||||
throw new RuntimeException(sprintf('The container parameter "%s", used in the route configuration value "%s", must be a string or numeric, but it is of type "%s".', $match[1], $value, get_debug_type($resolved)));
|
||||
throw new RuntimeException(\sprintf('The container parameter "%s", used in the route configuration value "%s", must be a string or numeric, but it is of type "%s".', $match[1], $value, get_debug_type($resolved)));
|
||||
}, $value);
|
||||
|
||||
return str_replace('%%', '%', $escapedValue);
|
||||
|
||||
@@ -36,7 +36,7 @@ abstract class AbstractVault
|
||||
protected function validateName(string $name): void
|
||||
{
|
||||
if (!preg_match('/^\w++$/D', $name)) {
|
||||
throw new \LogicException(sprintf('Invalid secret name "%s": only "word" characters are allowed.', $name));
|
||||
throw new \LogicException(\sprintf('Invalid secret name "%s": only "word" characters are allowed.', $name));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ class DotenvVault extends AbstractVault
|
||||
|
||||
file_put_contents($this->dotenvFile, $content);
|
||||
|
||||
$this->lastMessage = sprintf('Secret "%s" %s in "%s".', $name, $count ? 'added' : 'updated', $this->getPrettyPath($this->dotenvFile));
|
||||
$this->lastMessage = \sprintf('Secret "%s" %s in "%s".', $name, $count ? 'added' : 'updated', $this->getPrettyPath($this->dotenvFile));
|
||||
}
|
||||
|
||||
public function reveal(string $name): ?string
|
||||
@@ -55,7 +55,7 @@ class DotenvVault extends AbstractVault
|
||||
$v = $_ENV[$name] ?? (str_starts_with($name, 'HTTP_') ? null : ($_SERVER[$name] ?? null));
|
||||
|
||||
if ('' === ($v ?? '')) {
|
||||
$this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
$this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -73,12 +73,12 @@ class DotenvVault extends AbstractVault
|
||||
|
||||
if ($count) {
|
||||
file_put_contents($this->dotenvFile, $content);
|
||||
$this->lastMessage = sprintf('Secret "%s" removed from file "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
$this->lastMessage = \sprintf('Secret "%s" removed from file "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
$this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath($this->dotenvFile));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
}
|
||||
|
||||
if (!$override && null !== $this->encryptionKey) {
|
||||
$this->lastMessage = sprintf('Sodium keys already exist at "%s*.{public,private}" and won\'t be overridden.', $this->getPrettyPath($this->pathPrefix));
|
||||
$this->lastMessage = \sprintf('Sodium keys already exist at "%s*.{public,private}" and won\'t be overridden.', $this->getPrettyPath($this->pathPrefix));
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -70,7 +70,7 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
$this->export('encrypt.public', $this->encryptionKey);
|
||||
$this->export('decrypt.private', $this->decryptionKey);
|
||||
|
||||
$this->lastMessage = sprintf('Sodium keys have been generated at "%s*.public/private.php".', $this->getPrettyPath($this->pathPrefix));
|
||||
$this->lastMessage = \sprintf('Sodium keys have been generated at "%s*.public/private.php".', $this->getPrettyPath($this->pathPrefix));
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -86,9 +86,9 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
$list = $this->list();
|
||||
$list[$name] = null;
|
||||
uksort($list, 'strnatcmp');
|
||||
file_put_contents($this->pathPrefix.'list.php', sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
|
||||
file_put_contents($this->pathPrefix.'list.php', \sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
|
||||
|
||||
$this->lastMessage = sprintf('Secret "%s" encrypted in "%s"; you can commit it.', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" encrypted in "%s"; you can commit it.', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
}
|
||||
|
||||
public function reveal(string $name): ?string
|
||||
@@ -98,13 +98,13 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
|
||||
$filename = $this->getFilename($name);
|
||||
if (!is_file($file = $this->pathPrefix.$filename.'.php')) {
|
||||
$this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!\function_exists('sodium_crypto_box_seal')) {
|
||||
$this->lastMessage = sprintf('Secret "%s" cannot be revealed as the "sodium" PHP extension missing. Try running "composer require paragonie/sodium_compat" if you cannot enable the extension."', $name);
|
||||
$this->lastMessage = \sprintf('Secret "%s" cannot be revealed as the "sodium" PHP extension missing. Try running "composer require paragonie/sodium_compat" if you cannot enable the extension."', $name);
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -112,13 +112,13 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
$this->loadKeys();
|
||||
|
||||
if ('' === $this->decryptionKey) {
|
||||
$this->lastMessage = sprintf('Secret "%s" cannot be revealed as no decryption key was found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" cannot be revealed as no decryption key was found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (false === $value = sodium_crypto_box_seal_open(include $file, $this->decryptionKey)) {
|
||||
$this->lastMessage = sprintf('Secret "%s" cannot be revealed as the wrong decryption key was provided for "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" cannot be revealed as the wrong decryption key was provided for "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -133,16 +133,16 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
|
||||
$filename = $this->getFilename($name);
|
||||
if (!is_file($file = $this->pathPrefix.$filename.'.php')) {
|
||||
$this->lastMessage = sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" not found in "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$list = $this->list();
|
||||
unset($list[$name]);
|
||||
file_put_contents($this->pathPrefix.'list.php', sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
|
||||
file_put_contents($this->pathPrefix.'list.php', \sprintf("<?php\n\nreturn %s;\n", VarExporter::export($list)), \LOCK_EX);
|
||||
|
||||
$this->lastMessage = sprintf('Secret "%s" removed from "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
$this->lastMessage = \sprintf('Secret "%s" removed from "%s".', $name, $this->getPrettyPath(\dirname($this->pathPrefix).\DIRECTORY_SEPARATOR));
|
||||
|
||||
return @unlink($file) || !file_exists($file);
|
||||
}
|
||||
@@ -199,7 +199,7 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
} elseif ('' !== $this->decryptionKey) {
|
||||
$this->encryptionKey = sodium_crypto_box_publickey($this->decryptionKey);
|
||||
} else {
|
||||
throw new \RuntimeException(sprintf('Encryption key not found in "%s".', \dirname($this->pathPrefix)));
|
||||
throw new \RuntimeException(\sprintf('Encryption key not found in "%s".', \dirname($this->pathPrefix)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
$b64 = 'decrypt.private' === $filename ? '// SYMFONY_DECRYPTION_SECRET='.base64_encode($data)."\n" : '';
|
||||
$name = basename($this->pathPrefix.$filename);
|
||||
$data = str_replace('%', '\x', rawurlencode($data));
|
||||
$data = sprintf("<?php // %s on %s\n\n%sreturn \"%s\";\n", $name, date('r'), $b64, $data);
|
||||
$data = \sprintf("<?php // %s on %s\n\n%sreturn \"%s\";\n", $name, date('r'), $b64, $data);
|
||||
|
||||
$this->createSecretsDir();
|
||||
|
||||
@@ -221,7 +221,7 @@ class SodiumVault extends AbstractVault implements EnvVarLoaderInterface
|
||||
private function createSecretsDir(): void
|
||||
{
|
||||
if ($this->secretsDir && !is_dir($this->secretsDir) && !@mkdir($this->secretsDir, 0777, true) && !is_dir($this->secretsDir)) {
|
||||
throw new \RuntimeException(sprintf('Unable to create the secrets directory (%s).', $this->secretsDir));
|
||||
throw new \RuntimeException(\sprintf('Unable to create the secrets directory (%s).', $this->secretsDir));
|
||||
}
|
||||
|
||||
$this->secretsDir = null;
|
||||
|
||||
@@ -171,7 +171,7 @@ trait BrowserKitAssertionsTrait
|
||||
}
|
||||
|
||||
if (!$client instanceof AbstractBrowser) {
|
||||
static::fail(sprintf('A client must be set to make assertions on it. Did you forget to call "%s::createClient()"?', __CLASS__));
|
||||
static::fail(\sprintf('A client must be set to make assertions on it. Did you forget to call "%s::createClient()"?', __CLASS__));
|
||||
}
|
||||
|
||||
return $client;
|
||||
|
||||
@@ -26,12 +26,12 @@ trait DomCrawlerAssertionsTrait
|
||||
{
|
||||
public static function assertSelectorExists(string $selector, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), new DomCrawlerConstraint\CrawlerSelectorExists($selector), $message);
|
||||
self::assertThat(self::getCrawler(), new CrawlerSelectorExists($selector), $message);
|
||||
}
|
||||
|
||||
public static function assertSelectorNotExists(string $selector, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorExists($selector)), $message);
|
||||
self::assertThat(self::getCrawler(), new LogicalNot(new CrawlerSelectorExists($selector)), $message);
|
||||
}
|
||||
|
||||
public static function assertSelectorCount(int $expectedCount, string $selector, string $message = ''): void
|
||||
@@ -42,7 +42,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertSelectorTextContains(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new DomCrawlerConstraint\CrawlerSelectorTextContains($selector, $text)
|
||||
), $message);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertAnySelectorTextContains(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new DomCrawlerConstraint\CrawlerAnySelectorTextContains($selector, $text)
|
||||
), $message);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertSelectorTextSame(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new DomCrawlerConstraint\CrawlerSelectorTextSame($selector, $text)
|
||||
), $message);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertAnySelectorTextSame(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new DomCrawlerConstraint\CrawlerAnySelectorTextSame($selector, $text)
|
||||
), $message);
|
||||
}
|
||||
@@ -74,7 +74,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertSelectorTextNotContains(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorTextContains($selector, $text))
|
||||
), $message);
|
||||
}
|
||||
@@ -82,7 +82,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertAnySelectorTextNotContains(string $selector, string $text, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists($selector),
|
||||
new CrawlerSelectorExists($selector),
|
||||
new LogicalNot(new DomCrawlerConstraint\CrawlerAnySelectorTextContains($selector, $text))
|
||||
), $message);
|
||||
}
|
||||
@@ -100,7 +100,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertInputValueSame(string $fieldName, string $expectedValue, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists("input[name=\"$fieldName\"]"),
|
||||
new CrawlerSelectorExists("input[name=\"$fieldName\"]"),
|
||||
new DomCrawlerConstraint\CrawlerSelectorAttributeValueSame("input[name=\"$fieldName\"]", 'value', $expectedValue)
|
||||
), $message);
|
||||
}
|
||||
@@ -108,7 +108,7 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertInputValueNotSame(string $fieldName, string $expectedValue, string $message = ''): void
|
||||
{
|
||||
self::assertThat(self::getCrawler(), LogicalAnd::fromConstraints(
|
||||
new DomCrawlerConstraint\CrawlerSelectorExists("input[name=\"$fieldName\"]"),
|
||||
new CrawlerSelectorExists("input[name=\"$fieldName\"]"),
|
||||
new LogicalNot(new DomCrawlerConstraint\CrawlerSelectorAttributeValueSame("input[name=\"$fieldName\"]", 'value', $expectedValue))
|
||||
), $message);
|
||||
}
|
||||
@@ -126,18 +126,18 @@ trait DomCrawlerAssertionsTrait
|
||||
public static function assertFormValue(string $formSelector, string $fieldName, string $value, string $message = ''): void
|
||||
{
|
||||
$node = self::getCrawler()->filter($formSelector);
|
||||
self::assertNotEmpty($node, sprintf('Form "%s" not found.', $formSelector));
|
||||
self::assertNotEmpty($node, \sprintf('Form "%s" not found.', $formSelector));
|
||||
$values = $node->form()->getValues();
|
||||
self::assertArrayHasKey($fieldName, $values, $message ?: sprintf('Field "%s" not found in form "%s".', $fieldName, $formSelector));
|
||||
self::assertArrayHasKey($fieldName, $values, $message ?: \sprintf('Field "%s" not found in form "%s".', $fieldName, $formSelector));
|
||||
self::assertSame($value, $values[$fieldName]);
|
||||
}
|
||||
|
||||
public static function assertNoFormValue(string $formSelector, string $fieldName, string $message = ''): void
|
||||
{
|
||||
$node = self::getCrawler()->filter($formSelector);
|
||||
self::assertNotEmpty($node, sprintf('Form "%s" not found.', $formSelector));
|
||||
self::assertNotEmpty($node, \sprintf('Form "%s" not found.', $formSelector));
|
||||
$values = $node->form()->getValues();
|
||||
self::assertArrayNotHasKey($fieldName, $values, $message ?: sprintf('Field "%s" has a value in form "%s".', $fieldName, $formSelector));
|
||||
self::assertArrayNotHasKey($fieldName, $values, $message ?: \sprintf('Field "%s" has a value in form "%s".', $fieldName, $formSelector));
|
||||
}
|
||||
|
||||
private static function getCrawler(): Crawler
|
||||
|
||||
@@ -33,7 +33,7 @@ trait HttpClientAssertionsTrait
|
||||
$expectedRequestHasBeenFound = false;
|
||||
|
||||
if (!\array_key_exists($httpClientId, $httpClientDataCollector->getClients())) {
|
||||
static::fail(sprintf('HttpClient "%s" is not registered.', $httpClientId));
|
||||
static::fail(\sprintf('HttpClient "%s" is not registered.', $httpClientId));
|
||||
}
|
||||
|
||||
foreach ($httpClientDataCollector->getClients()[$httpClientId]['traces'] as $trace) {
|
||||
@@ -101,7 +101,7 @@ trait HttpClientAssertionsTrait
|
||||
$unexpectedUrlHasBeenFound = false;
|
||||
|
||||
if (!\array_key_exists($httpClientId, $httpClientDataCollector->getClients())) {
|
||||
static::fail(sprintf('HttpClient "%s" is not registered.', $httpClientId));
|
||||
static::fail(\sprintf('HttpClient "%s" is not registered.', $httpClientId));
|
||||
}
|
||||
|
||||
foreach ($httpClientDataCollector->getClients()[$httpClientId]['traces'] as $trace) {
|
||||
@@ -113,7 +113,7 @@ trait HttpClientAssertionsTrait
|
||||
}
|
||||
}
|
||||
|
||||
self::assertFalse($unexpectedUrlHasBeenFound, sprintf('Unexpected URL called: "%s" - "%s"', $expectedMethod, $unexpectedUrl));
|
||||
self::assertFalse($unexpectedUrlHasBeenFound, \sprintf('Unexpected URL called: "%s" - "%s"', $expectedMethod, $unexpectedUrl));
|
||||
}
|
||||
|
||||
public static function assertHttpClientRequestCount(int $count, string $httpClientId = 'http_client'): void
|
||||
|
||||
@@ -60,11 +60,11 @@ abstract class KernelTestCase extends TestCase
|
||||
protected static function getKernelClass(): string
|
||||
{
|
||||
if (!isset($_SERVER['KERNEL_CLASS']) && !isset($_ENV['KERNEL_CLASS'])) {
|
||||
throw new \LogicException(sprintf('You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the "%1$s::createKernel()" or "%1$s::getKernelClass()" method.', static::class));
|
||||
throw new \LogicException(\sprintf('You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the "%1$s::createKernel()" or "%1$s::getKernelClass()" method.', static::class));
|
||||
}
|
||||
|
||||
if (!class_exists($class = $_ENV['KERNEL_CLASS'] ?? $_SERVER['KERNEL_CLASS'])) {
|
||||
throw new \RuntimeException(sprintf('Class "%s" doesn\'t exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the "%s::createKernel()" method.', $class, static::class));
|
||||
throw new \RuntimeException(\sprintf('Class "%s" doesn\'t exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the "%s::createKernel()" method.', $class, static::class));
|
||||
}
|
||||
|
||||
return $class;
|
||||
|
||||
@@ -78,7 +78,7 @@ class TestContainer extends Container
|
||||
throw $e;
|
||||
}
|
||||
if (isset($container->privates[$renamedId])) {
|
||||
throw new InvalidArgumentException(sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
|
||||
throw new InvalidArgumentException(\sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
|
||||
}
|
||||
$container->privates[$renamedId] = $service;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ abstract class WebTestCase extends KernelTestCase
|
||||
protected static function createClient(array $options = [], array $server = []): KernelBrowser
|
||||
{
|
||||
if (static::$booted) {
|
||||
throw new \LogicException(sprintf('Booting the kernel before calling "%s()" is not supported, the kernel should only be booted once.', __METHOD__));
|
||||
throw new \LogicException(\sprintf('Booting the kernel before calling "%s()" is not supported, the kernel should only be booted once.', __METHOD__));
|
||||
}
|
||||
|
||||
$kernel = static::bootKernel($options);
|
||||
|
||||
@@ -83,7 +83,7 @@ class Translator extends BaseTranslator implements WarmableInterface
|
||||
|
||||
// check option names
|
||||
if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
|
||||
throw new InvalidArgumentException(sprintf('The Translator does not support the following options: \'%s\'.', implode('\', \'', $diff)));
|
||||
throw new InvalidArgumentException(\sprintf('The Translator does not support the following options: \'%s\'.', implode('\', \'', $diff)));
|
||||
}
|
||||
|
||||
$this->options = array_merge($this->options, $options);
|
||||
|
||||
Reference in New Issue
Block a user