From 0014fee04cf441c0b4e67c93590883437dcd303c Mon Sep 17 00:00:00 2001 From: Chi Date: Mon, 13 Sep 2021 21:25:09 +0500 Subject: [PATCH] Remove usage of deprecated functions --- src/TwigTweakExtension.php | 12 ++++++++---- src/UrlExtractor.php | 15 ++++++++++++--- tests/src/Kernel/UrlExtractorTest.php | 4 ++-- twig_tweak.services.yml | 2 +- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/TwigTweakExtension.php b/src/TwigTweakExtension.php index 4d7ad01..365886a 100644 --- a/src/TwigTweakExtension.php +++ b/src/TwigTweakExtension.php @@ -318,9 +318,12 @@ class TwigTweakExtension extends AbstractExtension { \Drupal::request(), \Drupal::routeMatch()->getRouteObject() ); - $build['#markup'] = render($title); - $build['#cache']['contexts'] = ['url']; - return $build; + return [ + '#markup' => is_array($title) ? \Drupal::service('renderer')->render($title) : $title, + '#cache' => [ + 'context' => ['url'], + ], + ]; } /** @@ -497,7 +500,8 @@ class TwigTweakExtension extends AbstractExtension { return NULL; } - return file_url_transform_relative($image_style->buildUrl($path)); + return \Drupal::service('file_url_generator') + ->transformRelative($image_style->buildUrl($path)); } /** diff --git a/src/UrlExtractor.php b/src/UrlExtractor.php index fee6727..ccb696a 100644 --- a/src/UrlExtractor.php +++ b/src/UrlExtractor.php @@ -7,6 +7,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Field\EntityReferenceFieldItemListInterface; use Drupal\Core\Field\FieldItemList; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; +use Drupal\Core\File\FileUrlGeneratorInterface; use Drupal\file\FileInterface; use Drupal\link\LinkItemInterface; use Drupal\media\MediaInterface; @@ -24,11 +25,19 @@ class UrlExtractor { */ protected $entityTypeManager; + /** + * The fire URL generator. + * + * @var \Drupal\Core\File\FileUrlGeneratorInterface + */ + protected $fileUrlGenerator; + /** * Constructs a UrlExtractor object. */ - public function __construct(EntityTypeManagerInterface $entity_type_manager) { + public function __construct(EntityTypeManagerInterface $entity_type_manager, FileUrlGeneratorInterface $file_url_generator) { $this->entityTypeManager = $entity_type_manager; + $this->fileUrlGenerator = $file_url_generator; } /** @@ -44,8 +53,8 @@ class UrlExtractor { */ public function extractUrl($input, bool $relative = TRUE): ?string { if (is_string($input)) { - $url = file_create_url($input); - return $relative ? file_url_transform_relative($url) : $url; + $url = $this->fileUrlGenerator->generateAbsoluteString($input); + return $relative ? $this->fileUrlGenerator->transformRelative($url) : $url; } elseif ($input instanceof LinkItemInterface) { return $input->getUrl()->toString(); diff --git a/tests/src/Kernel/UrlExtractorTest.php b/tests/src/Kernel/UrlExtractorTest.php index 1064358..1ffbfca 100644 --- a/tests/src/Kernel/UrlExtractorTest.php +++ b/tests/src/Kernel/UrlExtractorTest.php @@ -15,9 +15,9 @@ final class UrlExtractorTest extends AbstractExtractorTestCase { public function testUrlExtractor(): void { $extractor = $this->container->get('twig_tweak.url_extractor'); - $base_url = file_create_url(''); + $base_url = $this->container->get('file_url_generator')->generateAbsoluteString(''); - $request = \Drupal::request(); + $request = $this->container->get('request_stack')->getCurrentRequest(); $absolute_url = "{$request->getScheme()}://{$request->getHost()}/foo/bar.txt"; $url = $extractor->extractUrl($absolute_url); self::assertSame('/foo/bar.txt', $url); diff --git a/twig_tweak.services.yml b/twig_tweak.services.yml index 71d2365..f5c6ef3 100644 --- a/twig_tweak.services.yml +++ b/twig_tweak.services.yml @@ -34,7 +34,7 @@ services: twig_tweak.url_extractor: class: Drupal\twig_tweak\UrlExtractor - arguments: ['@entity_type.manager'] + arguments: ['@entity_type.manager', '@file_url_generator'] twig_tweak.uri_extractor: class: Drupal\twig_tweak\UriExtractor