drupal_dump()
, alias dd()
, is not provided by devel, but by another module named twig_tweak. It requires Symfony's VarDumper component to work. You can install them using composer :
composer require --dev symfony/var-dumper
composer require drupal/twig_tweak
drush en twig_tweak
ddm()
doesn't print anything to the screen but outputs a variable to a file named drupal_debug.txt in the site's temp directory.
More on devel functions here.
Long story
In drupal 7.x and up to version 8.6.0, dd()
was indeed provided by the devel module, but it was an alias for drupal_debug()
(d7) and DevelDumperManager::debug()
(d8), but it has been deprecated and replaced by ddm()
since 8.6.0, because Symfony's VarDumper component already has a function named dd()
.
Now to add further confusion, twig_tweak is using the alias dd()
for drupal_dump()
(source).
Even if both functions end up calling Symfony's VarDumper::dump()
, Symfony's dd means "dump and die" and is meant to immediately ends the execution of the script after dumping the variables, whereas twig_tweak's drupal_dump/dd does not.
The exact same thing happens in Laravel : it uses Symfony's VarDumper and overrides its dd function with a function that doesn't behave the same, instead of using a different name.