A fresh install of this module sometimes ends in the following error
Error: > > [error] InvalidArgumentException: Class "pagedesigner_view_modes_display_entity_type_alter" does not exist. in Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition() (line 32 of /var/www/html/app/public/core/lib/Drupal/Core/DependencyInjection/ClassResolver.php) #0 /var/www/html/app/public/core/lib/Drupal/Core/Utility/CallableResolver.php(78): Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition()
> > #1 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(742): Drupal\Core\Utility\CallableResolver->getCallableFromDefinition()
> > #2 [internal function]: Drupal\Core\Extension\ModuleHandler->getHookImplementationList()
> > #3 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(476): array_map()
> > #4 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(457): Drupal\Core\Extension\ModuleHandler->getCombinedListeners()
> > #5 /var/www/html/app/public/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(389): Drupal\Core\Extension\ModuleHandler->alter()
> > #6 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(123): Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions()
> > #7 /var/www/html/app/public/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(216): Drupal\Core\Entity\EntityTypeManager->findDefinitions()
> > #8 /var/www/html/app/public/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryCachedTrait.php(25): Drupal\Core\Plugin\DefaultPluginManager->getDefinitions()
> > #9 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(132): Drupal\Core\Plugin\DefaultPluginManager->getDefinition()
> > #10 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(260): Drupal\Core\Entity\EntityTypeManager->getDefinition()
> > #11 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(192): Drupal\Core\Entity\EntityTypeManager->getHandler()
> > #12 /var/www/html/app/public/modules/contrib/masquerade/src/Masquerade.php(90): Drupal\Core\Entity\EntityTypeManager->getStorage()
> > #13 [internal function]: Drupal\masquerade\Masquerade->__construct()
> > #14 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1197): ReflectionClass->newInstanceArgs()
> > #15 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(632): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
> > #16 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1315): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
> > #17 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1267): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #18 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1794): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #19 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1223): Symfony\Component\DependencyInjection\ContainerBuilder->callMethod()
> > #20 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(632): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
> > #21 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1315): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
> > #22 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1260): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #23 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1271): Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices()
> > #24 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(243): Symfony\Component\DependencyInjection\ContainerBuilder->Symfony\Component\DependencyInjection\{closure}()
> > #25 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}()
> > #26 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
> > #27 /var/www/html/app/vendor/symfony/http-kernel/HttpKernel.php(114): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
> > #28 /var/www/html/app/public/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(66): Symfony\Component\HttpKernel\HttpKernel->terminate()
> > #29 /var/www/html/app/public/core/lib/Drupal/Core/DrupalKernel.php(719): Drupal\Core\StackMiddleware\StackedHttpKernel->terminate()
> > #30 /var/www/html/app/vendor/drush/drush/src/Boot/DrupalBoot8.php(317): Drupal\Core\DrupalKernel->terminate()
> > #31 [internal function]: Drush\Boot\DrupalBoot8->terminate()
> > #32 {main}.
which is weird, since the only non-core file in the stacktrace comes from masquerade
the line triggering the error from masquerade is this
public function __construct(AccountInterface $current_user, EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, SessionManagerInterface $session_manager, SessionInterface $session, LoggerInterface $logger, PermissionHandlerInterface $permission_handler) {
$this->currentUser = $current_user;
$this->userStorage = $entity_type_manager->getStorage('user'); <-- THIS LINE
$this->moduleHandler = $module_handler;
$this->sessionManager = $session_manager;
$this->logger = $logger;
$this->permissionHandler = $permission_handler;
$this->session = $session;
}
i could not find the actual root cause of the problem but a solution.
moving the pagedesigner_view_modes_display_entity_type_alter hook from .module to new src/Hook/PagedesignerViewModesDisplayHooks.php and using php attributes to set the hook fixes the issue, because with this the hook can now be resolved.
Issue fork pagedesigner_view_modes_display-3566956
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
johannes.heinzerling commentedComment #4
johannes.heinzerling commentedI have patched the module with the given MR and our CI/CD pipeline is now fixed
-> Needs Review
Comment #5
johannes.heinzerling commentedComment #7
guillaumepacilly commentedComment #9
guillaumepacilly commented