Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Issue seems related to the following, but the reverse:
https://www.drupal.org/node/2064573
I am in Drupal 8 training right now, learning to develop a custom module.
I wrote the following hook_theme function:
function hugs_theme($existing, $type, $theme, $path) {
$theme['hug_page'] = [
'variables' => ['from' => NULL, 'to' => NULL],
'template' => 'hug_page',
];
return $theme;
}
The function paramaters were copied from the documentation: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21...
And I get the following error:
[Wed Jul 20 17:29:52.526467 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP Fatal error: Unsupported operand types in /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Theme/Registry.php on line 561
[Wed Jul 20 17:29:52.526535 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP Stack trace:
[Wed Jul 20 17:29:52.526562 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 1. {main}() /media/sf_htdocs/drupal8.dev/index.php:0
[Wed Jul 20 17:29:52.526583 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 2. Drupal\\Core\\DrupalKernel->handle() /media/sf_htdocs/drupal8.dev/index.php:19
[Wed Jul 20 17:29:52.526600 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 3. Stack\\StackedHttpKernel->handle() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/DrupalKernel.php:628
[Wed Jul 20 17:29:52.526617 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 4. Drupal\\Core\\StackMiddleware\\NegotiationMiddleware->handle() /media/sf_htdocs/drupal8.dev/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23
[Wed Jul 20 17:29:52.526634 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 5. Drupal\\Core\\StackMiddleware\\ReverseProxyMiddleware->handle() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php:50
[Wed Jul 20 17:29:52.526665 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 6. Drupal\\page_cache\\StackMiddleware\\PageCache->handle() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php:47
[Wed Jul 20 17:29:52.526682 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 7. Drupal\\page_cache\\StackMiddleware\\PageCache->pass() /media/sf_htdocs/drupal8.dev/core/modules/page_cache/src/StackMiddleware/PageCache.php:77
[Wed Jul 20 17:29:52.526698 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 8. Drupal\\Core\\StackMiddleware\\KernelPreHandle->handle() /media/sf_htdocs/drupal8.dev/core/modules/page_cache/src/StackMiddleware/PageCache.php:98
[Wed Jul 20 17:29:52.526715 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 9. Drupal\\Core\\StackMiddleware\\Session->handle() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php:47
[Wed Jul 20 17:29:52.526732 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 10. Symfony\\Component\\HttpKernel\\HttpKernel->handle() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/StackMiddleware/Session.php:57
[Wed Jul 20 17:29:52.526749 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 11. Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw() /media/sf_htdocs/drupal8.dev/vendor/symfony/http-kernel/HttpKernel.php:62
[Wed Jul 20 17:29:52.526765 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 12. Drupal\\Component\\EventDispatcher\\ContainerAwareEventDispatcher->dispatch() /media/sf_htdocs/drupal8.dev/vendor/symfony/http-kernel/HttpKernel.php:144
[Wed Jul 20 17:29:52.526782 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 13. Drupal\\Core\\EventSubscriber\\MainContentViewSubscriber->onViewRenderArray() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php:111
[Wed Jul 20 17:29:52.526832 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 14. Drupal\\Core\\Render\\MainContent\\HtmlRenderer->renderResponse() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php:90
[Wed Jul 20 17:29:52.526856 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 15. Drupal\\Core\\Render\\MainContent\\HtmlRenderer->prepare() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php:117
[Wed Jul 20 17:29:52.526893 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 16. Drupal\\Core\\Render\\Renderer->executeInRenderContext() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php:227
[Wed Jul 20 17:29:52.526923 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 17. Drupal\\Core\\Render\\MainContent\\HtmlRenderer->Drupal\\Core\\Render\\MainContent\\{closure}() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/Renderer.php:574
[Wed Jul 20 17:29:52.526941 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 18. Drupal\\Core\\Render\\Renderer->render() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php:226
[Wed Jul 20 17:29:52.526967 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 19. Drupal\\Core\\Render\\Renderer->doRender() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/Renderer.php:195
[Wed Jul 20 17:29:52.526986 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 20. Drupal\\Core\\Render\\Renderer->doRender() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/Renderer.php:448
[Wed Jul 20 17:29:52.527001 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 21. Drupal\\Core\\Theme\\ThemeManager->render() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Render/Renderer.php:435
[Wed Jul 20 17:29:52.527032 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 22. Drupal\\Core\\Theme\\Registry->getRuntime() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Theme/ThemeManager.php:142
[Wed Jul 20 17:29:52.527048 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 23. Drupal\\Core\\Utility\\ThemeRegistry->__construct() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Theme/Registry.php:242
[Wed Jul 20 17:29:52.527062 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 24. Drupal\\Core\\Utility\\ThemeRegistry->initializeRegistry() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Utility/ThemeRegistry.php:67
[Wed Jul 20 17:29:52.527079 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 25. Drupal\\Core\\Theme\\Registry->get() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Utility/ThemeRegistry.php:86
[Wed Jul 20 17:29:52.527102 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 26. Drupal\\Core\\Theme\\Registry->build() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Theme/Registry.php:222
[Wed Jul 20 17:29:52.527116 2016] [:error] [pid 3987] [client 10.0.2.2:54534] PHP 27. Drupal\\Core\\Theme\\Registry->processExtension() /media/sf_htdocs/drupal8.dev/core/lib/Drupal/Core/Theme/Registry.php:323
However, when I create this function with no parameters, the page works properly. Here is the corresponding controller:
class HugsController extends ControllerBase {
/**
* Hug.
*
* @return string
* Return Hello string.
*/
public function hug($from, $to) {
return [
'#theme' => 'hug_page',
'#from' => $from,
'#to' => $to,
];
}
}
Is the documentation incorrect or unclear with regards to which parameters to use?
Comments
Comment #2
star-szrYou are trying to manipulate $theme which is a string as if it's an array, without testing it I suspect that would explain the error you're seeing.
A couple notes:
In your example the 'template' line should probably be removed, that way you get a default template name of hug-page.html.twig
In many cases in hook_theme() you don't use the incoming parameters. Not including them is fine. In any case what you should always be doing is returning a new array, not trying to manipulate something coming in as a parameter and returning that.
Hope that helps!
Comment #3
joelpittetMarking as fixed to triage. Feel free to reopen if there is more to add.