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

cmanalansan created an issue. See original summary.

star-szr’s picture

Category: Bug report » Support request

You 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!

joelpittet’s picture

Status: Active » Fixed

Marking as fixed to triage. Feel free to reopen if there is more to add.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.