diff --git a/profiles/cr/drupal-org.make.yml b/profiles/cr/drupal-org.make.yml index 95fe10a780..ff551a3196 100644 --- a/profiles/cr/drupal-org.make.yml +++ b/profiles/cr/drupal-org.make.yml @@ -71,7 +71,7 @@ projects: devel: download: version: 1.x-dev - revision: 5c6a506 + revision: b8bcdc6 stage_file_proxy: version: 1.0-alpha1 imagemagick: diff --git a/profiles/cr/modules/contrib/devel/devel_generate/drush/DevelGenerateUnishTest.php b/profiles/cr/modules/contrib/devel/devel_generate/drush/DevelGenerateUnishTest.php index 52f139d981..128c2773c1 100644 --- a/profiles/cr/modules/contrib/devel/devel_generate/drush/DevelGenerateUnishTest.php +++ b/profiles/cr/modules/contrib/devel/devel_generate/drush/DevelGenerateUnishTest.php @@ -1,10 +1,5 @@ assertContains('Created the following new terms:', $this->getErrorOutput()); } + /** + * Tests devel generate contents. + */ + public function testDevelGenerateContents() { + $this->drush('pm-enable', ['node'], $this->getOptions()); + + $eval_content_count = "return \\Drupal::entityQuery('node')->count()->execute();"; + $eval_options = $this->getOptions() + ['format' => 'string']; + + // Try to generate 10 content of type "page" or "article" + $this->drush('generate-content', [10], $this->getOptions(), NULL, NULL, static::EXIT_SUCCESS); + $this->assertContains('Finished creating 10 nodes', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(10, $this->getOutput()); + + // Try to generate 1 content of type "page" or "article" + $this->drush('generate-content', [1], $this->getOptions(), NULL, NULL, static::EXIT_SUCCESS); + $this->assertContains('1 node created.', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(11, $this->getOutput()); + + // Try to generate 5 content of type "page" or "article", removing all + // previous contents. + $this->drush('generate-content', [5], $this->getOptions(TRUE), NULL, NULL, static::EXIT_SUCCESS); + $this->assertContains('Finished creating 5 nodes', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(5, $this->getOutput()); + + // Try to generate other 5 content with "crappy" type. Output should + // remains 5. + $generate_content_wrong_ct = $this->getOptions(TRUE) + ['types' => 'crappy']; + $this->drush('generate-content', [5], $generate_content_wrong_ct, NULL, NULL, static::EXIT_ERROR); + $this->assertContains('One or more content types have been entered that don', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(5, $this->getOutput()); + + // Try to generate other 5 content with empty types. Output should + // remains 5. + $generate_content_no_types = $this->getOptions(TRUE) + ['types' => '']; + $this->drush('generate-content', [5], $generate_content_no_types, NULL, NULL, static::EXIT_ERROR); + $this->assertContains('No content types available', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(5, $this->getOutput()); + + // Try to generate other 5 content without any types. Output should + // remains 5. + $generate_content_no_types = $this->getOptions(TRUE) + ['types' => NULL]; + $this->drush('generate-content', [5], $generate_content_no_types, NULL, NULL, static::EXIT_ERROR); + $this->assertContains('Wrong syntax or no content type selected. The correct syntax uses', $this->getErrorOutput()); + $this->drush('php-eval', [$eval_content_count], $eval_options); + $this->assertEquals(5, $this->getOutput()); + } + /** * Default drush options. * diff --git a/profiles/cr/modules/contrib/devel/devel_generate/src/Annotation/DevelGenerate.php b/profiles/cr/modules/contrib/devel/devel_generate/src/Annotation/DevelGenerate.php index 2fb2ac8750..9a0ce25252 100644 --- a/profiles/cr/modules/contrib/devel/devel_generate/src/Annotation/DevelGenerate.php +++ b/profiles/cr/modules/contrib/devel/devel_generate/src/Annotation/DevelGenerate.php @@ -1,10 +1,5 @@ array('html'), 'needs_environment' => TRUE, 'needs_context' => TRUE, + 'is_variadic' => TRUE, )), ); } @@ -39,12 +35,17 @@ public function getFunctions() { * * Code derived from https://github.com/barelon/CgKintBundle. * - * @param Twig_Environment $env + * @param \Twig_Environment $env * The twig environment instance. * @param array $context * An array of parameters passed to the template. + * @param array $args + * An array of parameters passed the function. + * + * @return string + * String representation of the input variables. */ - public function kint(\Twig_Environment $env, array $context) { + public function kint(\Twig_Environment $env, array $context, array $args = []) { // Don't do anything unless twig_debug is enabled. This reads from the Twig // environment, not Drupal Settings, so a container rebuild is necessary // when toggling twig_debug on and off. We can consider injecting Settings. @@ -56,10 +57,8 @@ public function kint(\Twig_Environment $env, array $context) { // @todo Can we add information about which template Kint was called from? \Kint::$displayCalledFrom = FALSE; - $output = ''; - - if (func_num_args() === 2) { - // No arguments passed to kint(), display full Twig context. + // No arguments passed to kint(), display full Twig context. + if (empty($args)) { $kint_variable = array(); foreach ($context as $key => $value) { if (!$value instanceof \Twig_Template) { @@ -72,54 +71,27 @@ public function kint(\Twig_Environment $env, array $context) { } else { // Try to get the names of variables from the Twig template. - $trace = debug_backtrace(); - $callee = $trace[0]; - - $lines = file($callee['file']); - $source = $lines[$callee['line'] - 1]; - - preg_match('/kint\((.+)\);/', $source, $matches); - $parameters = $matches[1]; - $parameters = preg_replace('/\$this->getContext\(\$context, "(.+)"\)/U', "$1", $parameters); - $parameters = preg_replace('/\(isset\(\$context\["(.+)"\]\) \? \$context\["(.+)"\] : null\)/U', "$1", $parameters); - do { - $parameters = preg_replace('/\$this->getAttribute\((.+), "(.+)"\)/U', "$1.$2", $parameters, 1, $found); - } while ($found); - - $parameters = explode(', ', $parameters); - foreach ($parameters as $index => $parameter) { - // Remove bad entries from the parameters array. Maybe we can avoid this - // by doing more with the regular expressions. - // This only seems to be needed for cases like: - // {{ my_array['#hash_index'] }} - if (in_array($parameter, array('array()', '"array'))) { - unset($parameters[$index]); - continue; - } - // Trim parens and quotes from the parameter strings. - $parameters[$index] = trim($parameter, '()"'); - } - - // Don't include $env and $context arguments in $args and $parameters. - $args = array_slice(func_get_args(), 2); - $parameters = array_slice($parameters, 2); + $parameters = $this->getTwigFunctionParameters(); // If there is only one argument, pass to Kint without too much hassle. if (count($args) == 1) { $kint_variable = reset($args); + $variable_name = reset($parameters); $result = @\Kint::dump($kint_variable); // Replace $kint_variable with the name of the variable in the Twig // template. - $output = str_replace('$kint_variable', reset($parameters), $result); + $output = str_replace('$kint_variable', $variable_name, $result); } else { + $kint_args = []; // Build an array of variable to pass to Kint. // @todo Can we just call_user_func_array while still retaining the // variable names? foreach ($args as $index => $arg) { // Prepend a unique index to allow debugging the same variable more // than once in the same Kint dump. - $kint_args['_index_' . $index . '_' . $parameters[$index]] = $arg; + $name = !empty($parameters[$index]) ? $parameters[$index] : $index; + $kint_args['_index_' . $index . '_' . $name] = $arg; } $result = @\Kint::dump($kint_args); @@ -133,4 +105,50 @@ public function kint(\Twig_Environment $env, array $context) { return $output; } + /** + * Gets the twig function parameters for the current invocation. + * + * @return array + * The detected twig function parameters. + */ + protected function getTwigFunctionParameters() { + $callee = NULL; + $template = NULL; + + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT); + + foreach ($backtrace as $index => $trace) { + if (isset($trace['object']) && $trace['object'] instanceof \Twig_Template && 'Twig_Template' !== get_class($trace['object'])) { + $template = $trace['object']; + $callee = $backtrace[$index - 1]; + break; + } + } + + $parameters = []; + + /** @var \Twig_Template $template */ + if (NULL !== $template && NULL !== $callee) { + $line_number = $callee['line']; + $debug_infos = $template->getDebugInfo(); + + if (isset($debug_infos[$line_number])) { + $source_line = $debug_infos[$line_number]; + $source_file_name = $template->getTemplateName(); + + if (is_readable($source_file_name)) { + $source = file($source_file_name, FILE_IGNORE_NEW_LINES); + $line = $source[$source_line - 1]; + + preg_match('/kint\((.+)\)/', $line, $matches); + if (isset($matches[1])) { + $parameters = array_map('trim', explode(',', $matches[1])); + } + } + } + } + + return $parameters; + } + } diff --git a/profiles/cr/modules/contrib/devel/src/Annotation/DevelDumper.php b/profiles/cr/modules/contrib/devel/src/Annotation/DevelDumper.php index f4dbbb56d1..582aace5ba 100644 --- a/profiles/cr/modules/contrib/devel/src/Annotation/DevelDumper.php +++ b/profiles/cr/modules/contrib/devel/src/Annotation/DevelDumper.php @@ -1,10 +1,5 @@ urlGenerator = $url_generator; } + /** + * Register the devel error handler. + * + * @param \Symfony\Component\EventDispatcher\Event $event + * The event to process. + */ + public function registerErrorHandler(Event $event = NULL) { + if ($this->account && $this->account->hasPermission('access devel information')) { + devel_set_handler(devel_get_handlers()); + } + } + /** * Initializes devel module requirements. */ public function onRequest(GetResponseEvent $event) { - if ($this->config->get('rebuild_theme')) { drupal_theme_rebuild(); @@ -83,14 +90,17 @@ public function onRequest(GetResponseEvent $event) { } /** - * Implements EventSubscriberInterface::getSubscribedEvents(). - * - * @return array - * An array of event listener definitions. + * {@inheritdoc} */ - static function getSubscribedEvents() { + public static function getSubscribedEvents() { // Set a low value to start as early as possible. - $events[KernelEvents::REQUEST][] = array('onRequest', -100); + $events[KernelEvents::REQUEST][] = ['onRequest', -100]; + + // Runs as soon as possible in the request but after + // AuthenticationSubscriber (priority 300) because you need to access to + // the current user for determine whether register the devel error handler + // or not. + $events[KernelEvents::REQUEST][] = ['registerErrorHandler', 256]; return $events; } diff --git a/profiles/cr/modules/contrib/devel/src/Form/ConfigEditor.php b/profiles/cr/modules/contrib/devel/src/Form/ConfigEditor.php index b1103373a6..f8c9858672 100644 --- a/profiles/cr/modules/contrib/devel/src/Form/ConfigEditor.php +++ b/profiles/cr/modules/contrib/devel/src/Form/ConfigEditor.php @@ -1,10 +1,5 @@ 'Notice', + '@message' => 'Undefined variable: undefined', + '%function' => 'Drupal\devel\Form\SettingsForm->demonstrateErrorHandlers()', + ]; + $error_warning = [ + '%type' => 'Warning', + '@message' => 'Division by zero', + '%function' => 'Drupal\devel\Form\SettingsForm->demonstrateErrorHandlers()', + ]; + + $config = $this->config('system.logging'); + $config->set('error_level', ERROR_REPORTING_DISPLAY_VERBOSE)->save(); + + $admin_user = $this->drupalCreateUser(['administer site configuration', 'access devel information']); + $this->drupalLogin($admin_user); + + // Ensures that the error handler config is present on the config page and + // by default the standard error handler is selected. + $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); + $this->assertEqual($error_handlers, [DEVEL_ERROR_HANDLER_STANDARD => DEVEL_ERROR_HANDLER_STANDARD]); + $this->drupalGet('admin/config/development/devel'); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_STANDARD); + + // Ensures that selecting the DEVEL_ERROR_HANDLER_NONE option no error + // (raw or message) is shown on the site in case of php errors. + $edit = [ + 'error_handlers[]' => DEVEL_ERROR_HANDLER_NONE, + ]; + $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); + $this->assertText(t('The configuration options have been saved.')); + $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); + $this->assertEqual($error_handlers, [DEVEL_ERROR_HANDLER_NONE => DEVEL_ERROR_HANDLER_NONE]); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_NONE); + + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertNoRawErrorMessage($error_notice); + $this->assertNoRawErrorMessage($error_warning); + $this->assertNoErrorMessage($error_notice); + $this->assertNoErrorMessage($error_warning); + + // Ensures that selecting the DEVEL_ERROR_HANDLER_BACKTRACE_KINT option a + // backtrace above the rendered page is shown on the site in case of php + // errors. + $edit = [ + 'error_handlers[]' => DEVEL_ERROR_HANDLER_BACKTRACE_KINT, + ]; + $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); + $this->assertText(t('The configuration options have been saved.')); + $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); + $this->assertEqual($error_handlers, [DEVEL_ERROR_HANDLER_BACKTRACE_KINT => DEVEL_ERROR_HANDLER_BACKTRACE_KINT]); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_BACKTRACE_KINT); + + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertRawErrorMessage($error_notice); + $this->assertRawErrorMessage($error_warning); + + // Ensures that selecting the DEVEL_ERROR_HANDLER_BACKTRACE_DPM option a + // backtrace in the message area is shown on the site in case of php errors. + $edit = [ + 'error_handlers[]' => DEVEL_ERROR_HANDLER_BACKTRACE_DPM, + ]; + $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); + $this->assertText(t('The configuration options have been saved.')); + $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); + $this->assertEqual($error_handlers, [DEVEL_ERROR_HANDLER_BACKTRACE_DPM => DEVEL_ERROR_HANDLER_BACKTRACE_DPM]); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_BACKTRACE_DPM); + + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertErrorMessage($error_notice); + $this->assertErrorMessage($error_warning); + + // Ensures that when multiple handlers are selected, the output produced by + // every handler is shown on the site in case of php errors. + $edit = [ + 'error_handlers[]' => [ + DEVEL_ERROR_HANDLER_BACKTRACE_DPM => DEVEL_ERROR_HANDLER_BACKTRACE_DPM, + DEVEL_ERROR_HANDLER_BACKTRACE_KINT => DEVEL_ERROR_HANDLER_BACKTRACE_KINT, + ] + ]; + $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); + $this->assertText(t('The configuration options have been saved.')); + $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); + $this->assertEqual($error_handlers, [ + DEVEL_ERROR_HANDLER_BACKTRACE_DPM => DEVEL_ERROR_HANDLER_BACKTRACE_DPM, + DEVEL_ERROR_HANDLER_BACKTRACE_KINT => DEVEL_ERROR_HANDLER_BACKTRACE_KINT, + ]); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_BACKTRACE_DPM); + $this->assertOptionSelected('edit-error-handlers', DEVEL_ERROR_HANDLER_BACKTRACE_KINT); + + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertRawErrorMessage($error_notice); + $this->assertRawErrorMessage($error_warning); + $this->assertErrorMessage($error_notice); + $this->assertErrorMessage($error_warning); + + // Ensures that setting the error reporting to all the output produced by + // handlers is shown on the site in case of php errors. + $config->set('error_level', ERROR_REPORTING_DISPLAY_ALL)->save(); + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertRawErrorMessage($error_notice); + $this->assertRawErrorMessage($error_warning); + $this->assertErrorMessage($error_notice); + $this->assertErrorMessage($error_warning); + + // Ensures that setting the error reporting to some the output produced by + // handlers is shown on the site in case of php errors. + $config->set('error_level', ERROR_REPORTING_DISPLAY_SOME)->save(); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->clickLink('notice+warning'); + $this->assertRawErrorMessage($error_notice); + $this->assertRawErrorMessage($error_warning); + $this->assertErrorMessage($error_notice); + $this->assertErrorMessage($error_warning); + + // Ensures that setting the error reporting to none the output produced by + // handlers is not shown on the site in case of php errors. + $config->set('error_level', ERROR_REPORTING_HIDE)->save(); + $this->clickLink('notice+warning'); + $this->assertResponse(200, 'Received expected HTTP status code.'); + $this->assertNoRawErrorMessage($error_notice); + $this->assertNoRawErrorMessage($error_warning); + $this->assertNoErrorMessage($error_notice); + $this->assertNoErrorMessage($error_warning); + + // The errors are expected. Do not interpret them as a test failure. + // Not using File API; a potential error must trigger a PHP warning. + unlink(\Drupal::root() . '/' . $this->siteDirectory . '/error.log'); + } + + /** + * Helper function: assert that the error message is found. + * + * @param array $error + * The error to check. + */ + protected function assertRawErrorMessage(array $error) { + $message = new FormattableMarkup('%type: @message in %function (line ', $error); + $this->assertRaw($message, new FormattableMarkup('Found raw error message: @message.', ['@message' => $message])); + } + + /** + * Helper function: assert that the error message is not found. + * + * + * @param array $error + * The error to check. + */ + protected function assertNoRawErrorMessage(array $error) { + $message = new FormattableMarkup('%type: @message in %function (line ', $error); + $this->assertNoRaw($message, new FormattableMarkup('Did not find raw error message: @message.', ['@message' => $message])); + } + + /** + * Helper function: assert that the error message is found. + * + * @param array $error + * The error to check. + */ + protected function assertErrorMessage(array $error) { + $pattern = '//div[contains(@class, "messages--warning")]//pre[contains(., :content)]'; + $message = new FormattableMarkup('%type: @message in %function (line ', $error); + $message = html_entity_decode(strip_tags((string) $message)); + $xpath = $this->xpath($pattern, [':content' => $message]); + $this->assertTrue(!empty($xpath), new FormattableMarkup('Found error message: @message.', ['@message' => $message])); + } + + /** + * Helper function: assert that the error message is not found. + * + * @param array $error + * The error to check. + */ + protected function assertNoErrorMessage(array $error) { + $pattern = '//div[contains(@class, "messages--warning")]//pre[contains(., :content)]'; + $message = new FormattableMarkup('%type: @message in %function (line ', $error); + $message = html_entity_decode(strip_tags((string) $message)); + $xpath = $this->xpath($pattern, [':content' => $message]); + $this->assertTrue(empty($xpath), new FormattableMarkup('Found error message: @message.', ['@message' => $message])); + } + +} diff --git a/profiles/cr/modules/contrib/devel/src/Tests/DevelMailTest.php b/profiles/cr/modules/contrib/devel/src/Tests/DevelMailTest.php index 18192d4500..9e285c922b 100644 --- a/profiles/cr/modules/contrib/devel/src/Tests/DevelMailTest.php +++ b/profiles/cr/modules/contrib/devel/src/Tests/DevelMailTest.php @@ -1,10 +1,5 @@ time; } -} \ No newline at end of file +} diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/Command/ExportCommand.php b/profiles/cr/modules/contrib/devel/webprofiler/src/Command/ExportCommand.php index 370b86b060..0322febd74 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/Command/ExportCommand.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/Command/ExportCommand.php @@ -1,10 +1,5 @@ hasLinkTemplate('edit-form')) { - $route = $entity->urlInfo('edit-form')->toString(); + $route = $entity->toUrl('edit-form')->toString(); } $id = $block->get('id'); diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/CacheDataCollector.php b/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/CacheDataCollector.php index 70b63fe18f..57371e879f 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/CacheDataCollector.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/CacheDataCollector.php @@ -1,10 +1,5 @@ data['abbr_git_commit'] = $process->getOutput(); } catch (ProcessFailedException $e) { $this->data['git_commit'] = $this->data['git_commit_abbr'] = NULL; + } catch (RuntimeException $e) { + $this->data['git_commit'] = $this->data['git_commit_abbr'] = NULL; } } diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/EventsDataCollector.php b/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/EventsDataCollector.php index 8772559d60..bb7772f817 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/EventsDataCollector.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/DataCollector/EventsDataCollector.php @@ -1,10 +1,5 @@ load($view->storage->id()); if ($entity->hasLinkTemplate('edit-display-form')) { - $route = $entity->urlInfo('edit-display-form'); + $route = $entity->toUrl('edit-display-form'); $route->setRouteParameter('display_id', $view->current_display); $data['route'] = $route->toString(); } diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/Decorator.php b/profiles/cr/modules/contrib/devel/webprofiler/src/Decorator.php index f00d9ca25e..270117d1ec 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/Decorator.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/Decorator.php @@ -1,10 +1,5 @@ stopwatch && $this->has('stopwatch')) { - $this->stopwatch = $this->createService(unserialize($this->serviceDefinitions['stopwatch']), 'stopwatch'); + $this->stopwatch = parent::get('stopwatch'); $this->stopwatch->openSection(); $this->hasStopwatch = TRUE; } diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/DrupalDataCollectorInterface.php b/profiles/cr/modules/contrib/devel/webprofiler/src/DrupalDataCollectorInterface.php index 108de62094..8a02b353fc 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/DrupalDataCollectorInterface.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/DrupalDataCollectorInterface.php @@ -1,10 +1,5 @@ entityManager->useCaches($use_caches = FALSE); + $this->entityManager->useCaches($use_caches); } /** @@ -238,7 +233,7 @@ public function getInstance(array $options) { * {@inheritdoc} */ public function setContainer(ContainerInterface $container = NULL) { - $this->entityManager->setContainer($container = NULL); + $this->entityManager->setContainer($container); } } diff --git a/profiles/cr/modules/contrib/devel/webprofiler/src/Entity/EntityViewBuilderDecorator.php b/profiles/cr/modules/contrib/devel/webprofiler/src/Entity/EntityViewBuilderDecorator.php index 946349c525..0b201ac0da 100644 --- a/profiles/cr/modules/contrib/devel/webprofiler/src/Entity/EntityViewBuilderDecorator.php +++ b/profiles/cr/modules/contrib/devel/webprofiler/src/Entity/EntityViewBuilderDecorator.php @@ -1,10 +1,5 @@