commit 06b1d26a410f1dc8156dba3feca5f349eb0f87f3 Author: Nathaniel Catchpole Date: Fri Sep 3 19:22:48 2021 +0100 Remove references to LegacyMimeTypeGuesserInterface. diff --git a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php index 0cf5669543..2e81c18c3d 100644 --- a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php +++ b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php @@ -88,7 +88,7 @@ public function __construct(ContainerInterface $container, array $listeners = [] /** * {@inheritdoc} */ - public function dispatch($event/*, string $event_name = NULL*/) { + public function dispatch(object $event, ?string $eventName = NULL): object { $event_name = 1 < \func_num_args() ? func_get_arg(1) : NULL; if (\is_object($event)) { $class_name = get_class($event); diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php index 87294d933a..4f65418e34 100644 --- a/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php +++ b/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php @@ -6,7 +6,6 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Exception\LogicException; use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface as LegacyMimeTypeGuesserInterface; use Symfony\Component\Mime\MimeTypeGuesserInterface; /** @@ -29,7 +28,6 @@ public function process(ContainerBuilder $container) { $tag = 'mime_type_guesser'; $interface = MimeTypeGuesserInterface::class; - $deprecated_interface = LegacyMimeTypeGuesserInterface::class; // Find all tagged handlers. $handlers = []; @@ -37,10 +35,7 @@ public function process(ContainerBuilder $container) { // Validate the interface. $handler = $container->getDefinition($id); if (!is_subclass_of($handler->getClass(), $interface)) { - // Special handling for $deprecated_interface. - if (!is_subclass_of($handler->getClass(), $deprecated_interface)) { - throw new LogicException("Service '$id' does not implement $interface."); - } + throw new LogicException("Service '$id' does not implement $interface."); } $handlers[$id] = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0; $interfaces[$id] = $handler->getClass(); @@ -56,12 +51,7 @@ public function process(ContainerBuilder $container) { // definition. foreach ($handlers as $id => $priority) { $arguments = [new Reference($id), $priority]; - if (is_subclass_of($interfaces[$id], $interface)) { - $consumer->addMethodCall('addMimeTypeGuesser', $arguments); - } - else { - $consumer->addMethodCall('addGuesser', $arguments); - } + $consumer->addMethodCall('addMimeTypeGuesser', $arguments); } } diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index a175e04b94..48c6c5545d 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -17,7 +17,6 @@ use Drupal\Core\DependencyInjection\YamlFileLoader; use Drupal\Core\Extension\Extension; use Drupal\Core\Extension\ExtensionDiscovery; -use Drupal\Core\File\MimeType\MimeTypeGuesser; use Drupal\Core\Http\TrustedHostsRequestFactory; use Drupal\Core\Installer\InstallerKernel; use Drupal\Core\Installer\InstallerRedirectTrait; @@ -597,9 +596,6 @@ public function preHandle(Request $request) { // Set the allowed protocols. UrlHelper::setAllowedProtocols($this->container->getParameter('filter_protocols')); - // Override of Symfony's MIME type guesser singleton. - MimeTypeGuesser::registerWithSymfonyGuesser($this->container); - $this->prepared = TRUE; } diff --git a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php index d8ec405542..57b7468c14 100644 --- a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php +++ b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php @@ -3,13 +3,12 @@ namespace Drupal\Core\File\MimeType; use Drupal\Core\Extension\ModuleHandlerInterface; -use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface as LegacyMimeTypeGuesserInterface; use Symfony\Component\Mime\MimeTypeGuesserInterface; /** * Makes possible to guess the MIME type of a file using its extension. */ -class ExtensionMimeTypeGuesser implements MimeTypeGuesserInterface, LegacyMimeTypeGuesserInterface { +class ExtensionMimeTypeGuesser implements MimeTypeGuesserInterface { /** * Default MIME extension mapping. diff --git a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php index d42f7ab901..b9b5604ab5 100644 --- a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php +++ b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php @@ -3,15 +3,12 @@ namespace Drupal\Core\File\MimeType; use Drupal\Core\StreamWrapper\StreamWrapperManagerInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser as SymfonyMimeTypeGuesser; -use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface as LegacyMimeTypeGuesserInterface; -use Symfony\Component\Mime\MimeTypeGuesserInterface as MimeTypeGuesserInterface; +use Symfony\Component\Mime\MimeTypeGuesserInterface; /** * Defines a MIME type guesser that also supports stream wrapper paths. */ -class MimeTypeGuesser implements LegacyMimeTypeGuesserInterface, MimeTypeGuesserInterface { +class MimeTypeGuesser implements MimeTypeGuesserInterface { /** * An array of arrays of registered guessers keyed by priority. @@ -102,29 +99,6 @@ public function addMimeTypeGuesser(MimeTypeGuesserInterface $guesser, $priority return $this; } - /** - * Appends a MIME type guesser to the guessers chain. - * - * @param \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface $guesser - * The guesser to be appended. - * @param int $priority - * The priority of the guesser being added. - * - * @return $this - * - * @deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Use - * ::addMimeTypeGuesser() instead. - * - * @see https://www.drupal.org/node/3133341 - */ - public function addGuesser(LegacyMimeTypeGuesserInterface $guesser, $priority = 0) { - @trigger_error(__METHOD__ . ' is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Use ::addMimeTypeGuesser() instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED); - $this->guessers[$priority][] = $guesser; - // Mark sorted guessers for rebuild. - $this->sortedGuessers = NULL; - return $this; - } - /** * {@inheritdoc} */ @@ -148,20 +122,4 @@ protected function sortGuessers() { return $sorted; } - /** - * A helper function to register with Symfony's singleton MIME type guesser. - * - * Symfony's default mimetype guessers have dependencies on PHP's fileinfo - * extension or being able to run the system command file. Drupal's guesser - * does not have these dependencies. - * - * @see \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser - */ - public static function registerWithSymfonyGuesser(ContainerInterface $container) { - // Reset state, so we do not store more and more services during test runs. - SymfonyMimeTypeGuesser::reset(); - $singleton = SymfonyMimeTypeGuesser::getInstance(); - $singleton->register($container->get('file.mime_type.guesser')); - } - } diff --git a/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php b/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php index 7603236198..8cb8b4f59c 100644 --- a/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php +++ b/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php @@ -12,7 +12,7 @@ * * @see \Drupal\Component\ProxyBuilder */ - class ExtensionMimeTypeGuesser implements \Symfony\Component\Mime\MimeTypeGuesserInterface, \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface + class ExtensionMimeTypeGuesser implements \Symfony\Component\Mime\MimeTypeGuesserInterface { use \Drupal\Core\DependencyInjection\DependencySerializationTrait; @@ -78,7 +78,7 @@ public function guess($path) /** * {@inheritdoc} */ - public function guessMimeType($path): string + public function guessMimeType($path): ?string { return $this->lazyLoadItself()->guessMimeType($path); } diff --git a/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php index ad7f37fda1..3bb2e9d3a2 100644 --- a/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php +++ b/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php @@ -12,7 +12,7 @@ * * @see \Drupal\Component\ProxyBuilder */ - class MimeTypeGuesser implements \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface, \Symfony\Component\Mime\MimeTypeGuesserInterface + class MimeTypeGuesser implements \Symfony\Component\Mime\MimeTypeGuesserInterface { use \Drupal\Core\DependencyInjection\DependencySerializationTrait; @@ -70,7 +70,7 @@ protected function lazyLoadItself() /** * {@inheritdoc} */ - public function guessMimeType(string $path): string + public function guessMimeType(string $path): ?string { return $this->lazyLoadItself()->guessMimeType($path); } @@ -86,19 +86,11 @@ public function guess($path) /** * {@inheritdoc} */ - public function addMimeTypeGuesser($guesser, $priority = 0) + public function addMimeTypeGuesser(\Symfony\Component\Mime\MimeTypeGuesserInterface $guesser, $priority = 0) { return $this->lazyLoadItself()->addMimeTypeGuesser($guesser, $priority); } - /** - * {@inheritdoc} - */ - public function addGuesser(\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface $guesser, $priority = 0) - { - return $this->lazyLoadItself()->addGuesser($guesser, $priority); - } - /** * {@inheritdoc} */ diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/MimeTypePassTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/MimeTypePassTest.php deleted file mode 100644 index 121c7d26b3..0000000000 --- a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/MimeTypePassTest.php +++ /dev/null @@ -1,64 +0,0 @@ -setParameter('kernel.environment', $environment); - return $container; - } - - /** - * Tests backwards compatibility shim for MimeTypeGuesser interface changes. - */ - public function testProcessLegacy() { - $this->expectDeprecation('The "Drupal\Tests\Core\DependencyInjection\Compiler\LegacyMimeTypeGuesser" class implements "Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface" that is deprecated since Symfony 4.3, use {@link MimeTypesInterface} instead.'); - $container = $this->buildContainer(); - $container - ->register('file.mime_type.guesser', MimeTypeGuesser::class); - - $container - ->register('handler1', __NAMESPACE__ . '\NewMimeTypeGuesser') - ->addTag('mime_type_guesser', ['priority' => 200]); - $container - ->register('handler2', __NAMESPACE__ . '\LegacyMimeTypeGuesser') - ->addTag('mime_type_guesser', ['priority' => 100]); - - $handler_pass = new MimeTypePass(); - $handler_pass->process($container); - $method_calls = $container->getDefinition('file.mime_type.guesser')->getMethodCalls(); - $this->assertCount(2, $method_calls); - $this->assertSame(200, $method_calls[0][1][1]); - $this->assertSame(100, $method_calls[1][1][1]); - } - -} - -class NewMimeTypeGuesser implements MimeTypeGuesserInterface { - - public function guessMimeType(string $string): string {} - - public function isGuesserSupported(): bool {} - -} - -class LegacyMimeTypeGuesser implements LegacyMimeTypeGuesserInterface { - - public function guess($string) {} - -}