mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-18 23:08:46 +02:00
N°8834 - Add compatibility with PHP 8.4 (#819)
* N°8834 - Add compatibility with PHP 8.4 * Rollback of scssphp/scssphp version upgrade due to compilation error
This commit is contained in:
@@ -157,7 +157,7 @@ class Configuration implements ConfigurationInterface
|
||||
->normalizeKeys(false)
|
||||
->useAttributeAsKey('paths')
|
||||
->beforeNormalization()
|
||||
->always()
|
||||
->ifArray()
|
||||
->then(function ($paths) {
|
||||
$normalized = [];
|
||||
foreach ($paths as $path => $namespace) {
|
||||
@@ -221,7 +221,7 @@ class Configuration implements ConfigurationInterface
|
||||
->arrayNode('mailer')
|
||||
->children()
|
||||
->scalarNode('html_to_text_converter')
|
||||
->info(sprintf('A service implementing the "%s"', HtmlToTextConverterInterface::class))
|
||||
->info(\sprintf('A service implementing the "%s"', HtmlToTextConverterInterface::class))
|
||||
->defaultNull()
|
||||
->end()
|
||||
->end()
|
||||
|
||||
@@ -25,6 +25,7 @@ use Symfony\Component\Mailer\Mailer;
|
||||
use Symfony\Component\Translation\LocaleSwitcher;
|
||||
use Symfony\Component\Translation\Translator;
|
||||
use Symfony\Contracts\Service\ResetInterface;
|
||||
use Twig\Environment;
|
||||
use Twig\Extension\ExtensionInterface;
|
||||
use Twig\Extension\RuntimeExtensionInterface;
|
||||
use Twig\Loader\LoaderInterface;
|
||||
@@ -45,6 +46,10 @@ class TwigExtension extends Extension
|
||||
$loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||
$loader->load('twig.php');
|
||||
|
||||
if (method_exists(Environment::class, 'resetGlobals')) {
|
||||
$container->getDefinition('twig')->addTag('kernel.reset', ['method' => 'resetGlobals']);
|
||||
}
|
||||
|
||||
if ($container::willBeAvailable('symfony/form', Form::class, ['symfony/twig-bundle'])) {
|
||||
$loader->load('form.php');
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ use Symfony\Bundle\TwigBundle\DependencyInjection\Configurator\EnvironmentConfig
|
||||
use Symfony\Bundle\TwigBundle\TemplateIterator;
|
||||
use Twig\Cache\FilesystemCache;
|
||||
use Twig\Environment;
|
||||
use Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser;
|
||||
use Twig\Extension\CoreExtension;
|
||||
use Twig\Extension\DebugExtension;
|
||||
use Twig\Extension\EscaperExtension;
|
||||
@@ -63,6 +64,7 @@ return static function (ContainerConfigurator $container) {
|
||||
->tag('container.preload', ['class' => EscaperExtension::class])
|
||||
->tag('container.preload', ['class' => OptimizerExtension::class])
|
||||
->tag('container.preload', ['class' => StagingExtension::class])
|
||||
->tag('container.preload', ['class' => BinaryOperatorExpressionParser::class])
|
||||
->tag('container.preload', ['class' => ExtensionSet::class])
|
||||
->tag('container.preload', ['class' => Template::class])
|
||||
->tag('container.preload', ['class' => TemplateWrapper::class])
|
||||
|
||||
@@ -36,7 +36,7 @@ class TemplateIterator implements \IteratorAggregate
|
||||
* @param string|null $defaultPath The directory where global templates can be stored
|
||||
* @param string[] $namePatterns Pattern of file names
|
||||
*/
|
||||
public function __construct(KernelInterface $kernel, array $paths = [], string $defaultPath = null, array $namePatterns = [])
|
||||
public function __construct(KernelInterface $kernel, array $paths = [], ?string $defaultPath = null, array $namePatterns = [])
|
||||
{
|
||||
$this->kernel = $kernel;
|
||||
$this->paths = $paths;
|
||||
@@ -64,6 +64,12 @@ class TemplateIterator implements \IteratorAggregate
|
||||
if (null !== $this->defaultPath) {
|
||||
$templates[] = $this->findTemplatesInDirectory($this->defaultPath.'/bundles/'.$bundle->getName(), $name);
|
||||
}
|
||||
|
||||
/*
|
||||
* The bundle's own templates are also registered with the "!" prefix namespace - this matches
|
||||
* @see \Symfony\Bundle\TwigBundle\DependencyInjection\TwigExtension::load()
|
||||
*/
|
||||
$templates[] = $this->findTemplatesInDirectory($bundleTemplatesDir, '!'.$name);
|
||||
}
|
||||
|
||||
foreach ($this->paths as $dir => $namespace) {
|
||||
@@ -78,7 +84,7 @@ class TemplateIterator implements \IteratorAggregate
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
private function findTemplatesInDirectory(string $dir, string $namespace = null, array $excludeDirs = []): array
|
||||
private function findTemplatesInDirectory(string $dir, ?string $namespace = null, array $excludeDirs = []): array
|
||||
{
|
||||
if (!is_dir($dir)) {
|
||||
return [];
|
||||
|
||||
Reference in New Issue
Block a user