3. ABOUT ME
➤ Luca Lusso
➤ Senior software architect at Wellnet - Italy
➤ Teacher for www.corsidrupal.it
➤ (co-)mantainer of Devel, Vardumper, Monolog, XHProf, …
➤ @lussoluca on Twitter
➤ lussoluca on drupal.org
4. DEVEL
Devel module turns 8!
The project began in 2003. At that time Drupal version was 4.1
Now it has reached more that 3.500.000 downloads and it runs
on more than 200.000 websites.
The actual Drupal 8 version is 1.0-RC1, the next will be the 1.0
stable!
10. REMOVED SUB-MODULES
Devel Node Access -> now in it’s own module at https://
www.drupal.org/dna waiting for a full release for D8. Then it
will be added back to Devel.
12. CORE INTEGRATIONS
Drupal 8 integrates a lot of modules that in Drupal 7 were
contrib.
The new Devel leverages those modules to provide information
and new features to developers.
14. TOOLBAR
➤ Devel is now directly integrated into the core Toolbar module
➤ Visible links are configurable
➤ When in vertical mode the Toolbar shows links to all the
available features
15. SERVICES, ROUTING AND EVENTS
Drupal 8 adds a lot of new concepts and structures that
developers needs to understand in order to build new modules.
Devel now provides report pages for services, routing, events
and many more.
19. MANAGE CONFIGURATION AND STATE
Goodby Variables API, welcome Configuration Management
System and State API!
You can use Devel to inspect and edit both systems.
22. ALL FEATURES
➤ Cache clear
➤ Config editor
➤ Container Info
➤ Current route info
➤ Element Info
➤ Entity Info
➤ Events Info
➤ Execute PHP
➤ Field Info
➤ PHPinfo()
➤ Rebuild Menu
➤ Reinstall Modules • Routes Info
➤ Run cron
➤ State editor
➤ Theme registry
➤ View Session
23. SWITCH USERS
As in Drupal 7, Devel provides a block that allows a quick
switch between users.
25. TWIG EXTENSIONS
The Twig engine in core allows module developers to add new
functions and filters to be used in templates (http://
twig.sensiolabs.org/doc/2.x/advanced.html).
Devel adds three new Twig functions for template developers:
➤ devel_dump($var)
➤ devel_message($var)
➤ devel_breakpoint()
26. DEVEL_DUMP
Prints a complex data structure in a pretty way, the same as PHP
function kpr().
Without arguments devel_dump display the full Twig context.
28. DEVEL_MESSAGE
Prints a complex data structure in a pretty way in the message
area, the same as PHP function dpm().
Without arguments devel_message display the full Twig context.
30. DEVEL_BREAKPOINT
Forces the PHP interpreter to stop the same way as setting a
breakpoint in an IDE.
Available variables are in $context array. Actually it works only
with xDebug.
33. DUMPERS
Devel now provides a way to replace the tool used for formatting
and displaying the variables inspected through the debug
functions.
Dumpers are implemented using the new plugin system in core.
Some of these plugins require external libraries for to be
enabled. Those libraries have to be installed with Composer.
34. AVAILABLE DUMPERS
Doctrine debug (the default one)
uses DoctrineCommonPersistenceProxyDebug class
Drupal variable
uses DrupalComponentUtilityVariable class
Symfony var-dumper
uses SymfonyComponentVarDumperDumperHtmlDumper class
ChromePHP
uses the ChromePhp debugging tool
FirePHP
uses the FirePhp debugging tool
Kint (in a sub-module, needs to be enabled)
uses DrupalkintPluginDevelDumperKint class
38. SYMFONY VAR-DUMPER
If vardumper module is present and enabled the class used by
the dumper became:
DrupalvardumperPluginDevelDumperVarDumper
which provides more integration with Drupal data structures:
➤ class names becomes links to the relative class in IDE (if
configured)
➤ user roles becomes link the role edit page
➤ more to come…
43. WEBPROFILER
The old Devel query logger and memory profiler has been
removed in favour of a new sub-module: Webprofiler
44. REALTIME DATA
The report pages that Devel shows about services, routing and
so on, lists all data available in a Drupal website.
Webprofiler instead collects data about the rendered page, so it
is useful to measure performance data and to debug every single
response.
45. AVAILABLE DATA COLLECTORS - 1
➤ Assets
➤ Blocks
➤ Cache
➤ Config
➤ Database
➤ Devel
➤ Events
➤ Extensions
➤ Forms
➤ Http
➤ Mail
46. AVAILABLE DATA COLLECTORS - 2
➤ PHP Config
➤ Performance Timing
➤ Request
➤ Routing
➤ Services
➤ State
➤ Theme
➤ Timeline
➤ User
➤ Views
48. INTEGRATION WITH XHPROF
Webprofiler collects high level Drupal data structure. If we need
PHP function level data we need a hierarchical profiler like
XHProf (or Tideways for PHP > 7.x)
The Drupal XHProf module adds a new data collector for
Webprofiler
49. CALL FOR VOLUNTEERS
Do you want to contribute to Devel? We need help for
development, testing, documentation, UX.
What are you waiting for? Contact us!