SlideShare a Scribd company logo
1 of 49
Download to read offline
DEVEL
D8 - Release party
INTRODUCTION
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
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!
DEVEL USAGE
MAINTAINERS
DEVEL
We’ll release the first stable version very soon!

So let’s see the new shiny features of Devel for Drupal 8.
INCLUDED SUB-
MODULES
NEW SUB-MODULES
➤ kint
➤ webprofiler
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.
CORE INTEGRATIONS
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.
TOOLBAR
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
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.
SERVICES, ROUTING AND EVENTS
SERVICES, ROUTING AND EVENTS
SERVICES, ROUTING AND EVENTS
MANAGE CONFIGURATION AND STATE
Goodby Variables API, welcome Configuration Management
System and State API!
You can use Devel to inspect and edit both systems.
MANAGE CONFIGURATION AND STATE
MANAGE CONFIGURATION AND STATE
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
SWITCH USERS
As in Drupal 7, Devel provides a block that allows a quick
switch between users.
SWITCH USERS
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()
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.
DEVEL_DUMP
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.
DEVEL_MESSAGE
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.
DEVEL_BREAKPOINT
Quick live demo
DUMPERS
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.
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
DOCTRINE DEBUG
DRUPAL VARIABLE
SYMFONY VAR-DUMPER
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…
KINT
ADD A DUMPER
Dumpers are plugins, contrib modules can add new dumpers to
the system:
ExampleDumper.php has to be in the
PluginDevelDumpernamespace
ADD A DUMPER
Every dumpers needs to implement the DevelDumperInterface
interface, or extend the DevelDumperBase class:
WEBPROFILER
WEBPROFILER
The old Devel query logger and memory profiler has been
removed in favour of a new sub-module: Webprofiler
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.
AVAILABLE DATA COLLECTORS - 1
➤ Assets
➤ Blocks
➤ Cache
➤ Config
➤ Database
➤ Devel
➤ Events
➤ Extensions
➤ Forms
➤ Http
➤ Mail
AVAILABLE DATA COLLECTORS - 2
➤ PHP Config
➤ Performance Timing
➤ Request
➤ Routing
➤ Services
➤ State
➤ Theme
➤ Timeline
➤ User
➤ Views
WEBPROFILER
Quick live demo
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
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!

More Related Content

What's hot

Building a Drupal site with Git
Building a Drupal site with GitBuilding a Drupal site with Git
Building a Drupal site with Git
dirtytactics
 

What's hot (20)

Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
Building a Drupal site with Git
Building a Drupal site with GitBuilding a Drupal site with Git
Building a Drupal site with Git
 
Ansible project-deploy
Ansible project-deployAnsible project-deploy
Ansible project-deploy
 
Managing your Drupal project with Composer
Managing your Drupal project with ComposerManaging your Drupal project with Composer
Managing your Drupal project with Composer
 
Keep calm and vagrant up
Keep calm and vagrant upKeep calm and vagrant up
Keep calm and vagrant up
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
 
OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
 
Drupalhagen 2014 kiss omg ftw
Drupalhagen 2014   kiss omg ftwDrupalhagen 2014   kiss omg ftw
Drupalhagen 2014 kiss omg ftw
 
Flyway
FlywayFlyway
Flyway
 
DevTools Package Development
 DevTools Package Development DevTools Package Development
DevTools Package Development
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
Getting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydbGetting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydb
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...
 

Viewers also liked

Viewers also liked (20)

条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
 
HoloLens x Graphics 入門
HoloLens x Graphics 入門HoloLens x Graphics 入門
HoloLens x Graphics 入門
 
The Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsThe Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer Interviews
 
The Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax DeductionsThe Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax Deductions
 
PET Grammar Unit 14: use to & would, too & enough, order of adjectives
PET Grammar Unit 14: use to &  would,    too & enough,  order of adjectivesPET Grammar Unit 14: use to &  would,    too & enough,  order of adjectives
PET Grammar Unit 14: use to & would, too & enough, order of adjectives
 
The greatest tragedy of western front pakistani stupidity at its lowest height
The greatest tragedy of western front   pakistani stupidity at its lowest heightThe greatest tragedy of western front   pakistani stupidity at its lowest height
The greatest tragedy of western front pakistani stupidity at its lowest height
 
Gustavo Germano Proyecto Ausencias
Gustavo Germano Proyecto AusenciasGustavo Germano Proyecto Ausencias
Gustavo Germano Proyecto Ausencias
 
3行ラベリングの勧め
3行ラベリングの勧め3行ラベリングの勧め
3行ラベリングの勧め
 
What am i buying understanding website cost and technology 17 ntc
What am i buying   understanding website cost and technology 17 ntcWhat am i buying   understanding website cost and technology 17 ntc
What am i buying understanding website cost and technology 17 ntc
 
New base 1014 special 26 march 2017 energy news
New base 1014 special 26 march 2017 energy newsNew base 1014 special 26 march 2017 energy news
New base 1014 special 26 march 2017 energy news
 
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedInBoostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
 
Feeding Florida Together flyer
Feeding Florida Together flyer Feeding Florida Together flyer
Feeding Florida Together flyer
 
What Makes Stanford Special
What Makes Stanford SpecialWhat Makes Stanford Special
What Makes Stanford Special
 
El trastorno mental del Omelette
El trastorno mental del OmeletteEl trastorno mental del Omelette
El trastorno mental del Omelette
 
Mindmapping
MindmappingMindmapping
Mindmapping
 
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれいまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
 
Marketing for Nerds with Diane Kinney and Carrie DIls
Marketing for Nerds with Diane Kinney and Carrie DIlsMarketing for Nerds with Diane Kinney and Carrie DIls
Marketing for Nerds with Diane Kinney and Carrie DIls
 
ドローン農業最前線
ドローン農業最前線ドローン農業最前線
ドローン農業最前線
 
The IoT Conversation
The IoT ConversationThe IoT Conversation
The IoT Conversation
 

Similar to Devel for Drupal 8

Tips and tricks for building Large web applications with Drupal
Tips and tricks for building Large web applications with DrupalTips and tricks for building Large web applications with Drupal
Tips and tricks for building Large web applications with Drupal
MitzaCeusan
 

Similar to Devel for Drupal 8 (20)

[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release party[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release party
 
Drupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 MigrationDrupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 Migration
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with Drupal
 
Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
 
How to Migrate Drupal 6 to Drupal 8?
How to Migrate Drupal 6 to Drupal 8?How to Migrate Drupal 6 to Drupal 8?
How to Migrate Drupal 6 to Drupal 8?
 
DDAY2014 - Features per Drupal 8
DDAY2014 - Features per Drupal 8DDAY2014 - Features per Drupal 8
DDAY2014 - Features per Drupal 8
 
Drupal Migrations in 2018
Drupal Migrations in 2018Drupal Migrations in 2018
Drupal Migrations in 2018
 
Hands on Docker - Launch your own LEMP or LAMP stack
Hands on Docker -  Launch your own LEMP or LAMP stackHands on Docker -  Launch your own LEMP or LAMP stack
Hands on Docker - Launch your own LEMP or LAMP stack
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Drupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with PuppetDrupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with Puppet
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal Camp
 
Face your fears: Drush and Aegir
Face your fears: Drush and AegirFace your fears: Drush and Aegir
Face your fears: Drush and Aegir
 
Drupal6 and Drupal 7 difference
Drupal6 and Drupal 7 differenceDrupal6 and Drupal 7 difference
Drupal6 and Drupal 7 difference
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend development
 
Drupal Modules
Drupal ModulesDrupal Modules
Drupal Modules
 
Tips and tricks for building Large web applications with Drupal
Tips and tricks for building Large web applications with DrupalTips and tricks for building Large web applications with Drupal
Tips and tricks for building Large web applications with Drupal
 
Drupal
DrupalDrupal
Drupal
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
 
Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 

Devel for Drupal 8

  • 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!
  • 7. DEVEL We’ll release the first stable version very soon!
 So let’s see the new shiny features of Devel for Drupal 8.
  • 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…
  • 39. KINT
  • 40. ADD A DUMPER Dumpers are plugins, contrib modules can add new dumpers to the system: ExampleDumper.php has to be in the PluginDevelDumpernamespace
  • 41. ADD A DUMPER Every dumpers needs to implement the DevelDumperInterface interface, or extend the DevelDumperBase class:
  • 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!