diff --git a/phpBB/config/installer/container/services.yml b/phpBB/config/installer/container/services.yml index 080b8a48e3..50419bb915 100644 --- a/phpBB/config/installer/container/services.yml +++ b/phpBB/config/installer/container/services.yml @@ -9,6 +9,18 @@ imports: - { resource: ../../default/container/services_twig.yml } services: + assets.bag: + class: phpbb\template\assets_bag + shared: false + arguments: + - '@assets.iconify_bundler' + + assets.iconify_bundler: + class: phpbb\assets\iconify_bundler + shared: false + arguments: + - ~ + cache.driver: class: '%cache.driver.class%' arguments: @@ -76,6 +88,7 @@ services: template.twig.environment: class: phpbb\template\twig\environment arguments: + - '@assets.bag' - '@config' - '@filesystem' - '@path_helper' diff --git a/phpBB/phpbb/assets/iconify_bundler.php b/phpBB/phpbb/assets/iconify_bundler.php index 202f824124..2671cb0880 100644 --- a/phpBB/phpbb/assets/iconify_bundler.php +++ b/phpBB/phpbb/assets/iconify_bundler.php @@ -14,10 +14,11 @@ namespace phpbb\assets; use Iconify\JSONTools\Collection; +use phpbb\log\log_interface; class iconify_bundler { - /** @var \phpbb\log\log_interface */ + /** @var log_interface */ protected $log; /** @var string[] Icons list */ @@ -26,9 +27,9 @@ class iconify_bundler /** * Constructor for iconify bundler * - * @param \phpbb\log\log_interface $log Logger + * @param log_interface|null $log Logger */ - public function __construct(\phpbb\log\log_interface $log) + public function __construct(?log_interface $log) { $this->log = $log; } @@ -113,7 +114,10 @@ class iconify_bundler if ($icon === null || $icon['provider'] !== '') { // Invalid name or icon name does not have provider - $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$icon_name]); + if ($this->log) + { + $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$icon_name]); + } continue; } @@ -214,7 +218,11 @@ class iconify_bundler $collection = new Collection($prefix); if (!$collection->loadIconifyCollection($prefix)) { - $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_COLLECTION_INVALID', false, [$prefix]); + if ($this->log) + { + $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_COLLECTION_INVALID', false, [$prefix]); + } + continue; } // Make sure all icons exist @@ -222,7 +230,10 @@ class iconify_bundler { if (!$collection->iconExists($name)) { - $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$prefix . ':' . $name]); + if ($this->log) + { + $this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$prefix . ':' . $name]); + } } } diff --git a/tests/email/email_parsing_test.php b/tests/email/email_parsing_test.php index 1a5f8af35a..7777cd5358 100644 --- a/tests/email/email_parsing_test.php +++ b/tests/email/email_parsing_test.php @@ -69,6 +69,7 @@ class phpbb_email_parsing_test extends phpbb_test_case $log = new \phpbb\log\dummy(); $iconify_bundler = new \phpbb\assets\iconify_bundler($log); $assets_bag = new \phpbb\template\assets_bag($iconify_bundler); + $phpbb_container->set('assets.bag', $assets_bag); $context = new \phpbb\template\context(); $twig = new \phpbb\template\twig\environment(