Drupal 8 Ready

Babdf467dac04e2ca41be014f2e95169?s=47 Chris Skene
September 24, 2013

Drupal 8 Ready

Presentation at DrupalCon Prague, with Boris Gordon and Tim Eisenhuth.


Chris Skene

September 24, 2013


  1. Drupal 8 Ready Christopher Skene & Boris Gordon, with Tim

    Eisenhuth & PreviousNext
  2. •Changes and additions in Drupal 8 What we’ll cover?

  3. •Changes and additions in Drupal 8 •Broken down by role

    What we’ll cover?
  4. •Changes and additions in Drupal 8 •Broken down by role

    •And by technology group What we’ll cover?
  5. •Changes and additions in Drupal 8 •Broken down by role

    •And by technology group •With learning resources What we’ll cover?
  6. •Changes and additions in Drupal 8 •Broken down by role

    •And by technology group •With learning resources •And pointers to relevant DrupalCon sessions What we’ll cover?
  7. None
  8. previousnext.com. au/drupal8ready

  9. About Us

  10. •PreviousNext is Australia’s leading Drupal service provider •Worked on Australia’s

    largest Drupal projects •Extensive experience •Committed to Drupal Chris Skene & Boris Gordon PreviousNext
  11. Tim Eisenhuth, Lee Rowlands, Kim Pepper and PreviousNext Everyone who’s

    written a nice, readable Drupal 8 changelog Chris’s wife and son, for putting up with him collating this while on holiday. Credits
  12. Your skill in Drupal has increased by 1 point.

  13. Notepads ready?

  14. What’s new for Site Builders? Point-and-click, but not as we

    know it
  15. Web & Front-end technologies

  16. Need to know •Understand how schema.org structures content Resources •Schema.org

    •RDF Meta issue drupal.org/node/1778226 Web & front-end technologies Use of Schema.org schemas
  17. Need to know • What are RESTful web services and

    how do we use them Resources • What is REST, explained using Starbucks: http://www.infoq. com/articles/webber-rest-, explained using Starbucks: http: //www.infoq.com/articles/webber-rest-workflow • REST: exposing data as RESTful web services drupal.org/node/1972016 • Serialization API in Drupal 8 drupal.org/node/1899138 Web & front-end technologies RESTful web services
  18. Drupal

  19. Need to know •Blocks get fields, revisions etc Sessions •Blocks

    from drop.org to Drupal 8 and beyond, @fgm Wed 10.45 – 11.45, Meeting Hall 1 Drupal New Block Concepts
  20. Need to know •CKEditor in core •Aloha for in-place editing

    •Text formats have changed Sessions •Designing Drupal 8, @LewisNyman, @Bojhan, Wed 13.00 – 14.00, Club H Drupal Editing improvements
  21. Need to know •Drupal gets “tours”. You can write them.

    Resources •Tour API documentation, drupal. org/node/1934442 •Creating a Tour for your module, previousnext. com.au/blog/tour-module-part-2-creating-tour- Drupal Tour API
  22. Need to know •Config now stored in Yaml files, in

    your files directory •Can be exported/imported Resources • • Drupal Configuration import/export
  23. Need to know •What a UUID looks like •Stop using

    “NID” (or similar) Resources •UUID module for Drupal 7, drupal.org/project/uuid •Drupal 8 UUID API documentation, Technology stack Universally Unique Identifiers for entities
  24. •New render #type ‘table’ •HTML5 elements •‘hidden’ element •FAPI property

    #pattern for HTML5 pattern attribute Other interesting changes
  25. •Drupal 8 for Site Builders, @swentel, Tue 10:45 – 11.45,

    Panorama Hall Site building For more information…
  26. What’s new for Themers? The more things change, the more

    they stay the same
  27. Web & front-end technologies

  28. Need to know •How to use Twig for Drupal templating

    Resources •Twig, twig.sensiolabs.org •Drupal 8 Theme Guide, drupal.org/theme- guide/8 Web & front-end technologies Drupal templates use Twig (not PHP)
  29. •Twig & the new theme layer in Drupal 8, Tue

    17:00 - 18:00, Panorama Hall •Twig, a templating system for Web Designers, Wed 10:45 - 11:45, Congress Hall •TWIG It - ship it (Lab), Wed 13:00 - 15:15, Club DE - Adyax room Web & front-end technologies Twig sessions
  30. Need to know •How to use Backbone.js Resources •backbonejs.org •drupal.org/project/backbone

    •Using Backbone.js with Drupal 8 & 7, @dealancer, Tue 15:45 – 16:45, North Hall - Web & front-end technologies Quick entity access with Backbone.js
  31. Need to know • What is “Responsive Design” and how

    does it work • Use of Picture element • Use of Breakpoints Resources • Responsive Images Community Group, responsiveimages.org/ • Drupal 8 Picture API, goo.gl/a3JvKY • Drupal 7 Picture backport, drupal.org/project/picture Web & front-end technologies Responsive Design paradigms
  32. Need to know •Drupal.announce() for speaking text •Drupal.tabbingManager assists with

    keyboard navigation Resources •Drupal.tabbingManager, drupal.org/node/2014545 •Drupal.announce(), drupal.org/node/2014521 Web & front-end technologies JavaScript Accessibility Features
  33. Need to know •Drupal 8 uses jQuery 2.0 •API parity

    with jQuery 1.9 •But… no support for IE 6/7/8 •jQuery UI 1.10 Resources •What’s new in jQuery 1.9, http://goo.gl/j0f7wh •jquery.com/upgrade-guide/1.9/ Web & front-end technologies jQuery 2.0
  34. Drupal

  35. Need to know •What are the Drupal 8 CSS standards!

    Resources •CSS Coding Standards, drupal.org/node/1886770 Drupal CSS Coding Standards
  36. Need to know •How to call namespaced Class functions •How

    to call static methods on Classes Resources •Introduction to PHP classes, www.lornajane.net/posts/2012/introduction-to-php- oop •How to Use PHP Namespaces, www.sitepoint.com/php-53-namespaces-basics/ Technology stack PHP Class and Namespace usage
  37. •drupal_add_css & drupal_add_js are gone •drupal_set_title is gone •drupal_set_breadcrumb is

    gone, use the new Breadcrumb API Other changes
  38. What’s new for Developers? Drupal is dead! Long live Drupal!

  39. Technology stack

  40. Need to know •Programming patterns •Model-View-Controller •Factory methods •Dependency injection

    •Namespaces & PSR-0 •Advanced Object-Oriented programming Technology stack Modern PHP programming
  41. • PHP The Right Way, www.phptherightway.com • Introduction to PHP

    classes, goo.gl/glGwXD • How to Use PHP Namespaces, goo.gl/eiHtGW • • • Technology stack Modern PHP programming resources
  42. •Don’t be STUPID, grasp SOLID, @ircmaxell, Wed 15:45 – 16:45,

    Congress Hall •Composing Drupal’s Future, @eclipsegc, Wed 15:45 – 16:45, Club H •Drupal Development using PHPStorm, @MikhailVink, Thu 10:45 – 11:45, Terrace 1 Technology stack Modern PHP programming sessions
  43. Need to know •Symfony2 components form the basis for large

    parts of 8 •Drupal 8 doesn’t work like Symfony2 •Understanding Symfony2 will make you a better Drupal developer Technology stack Symfony
  44. •Symfony website, symfony.com •Learn Symfony, symfony.com/doc/current/index.html Technology stack Symfony resources

  45. •Standardization, the Symfony way, @fabpot, Thu 10:45 – 11:45, Congress

    Hall •From not-invented-here to proudly-found- elsewhere, @alexpott, Tue 13:00 – 14:00, Congress Hall Technology sessions Symfony-related sessions
  46. • • • • Technology stack Composer

  47. Need to know •How to create and edit YAML files

    •Lots of Drupal config is now in YAML Resources •en.wikipedia.org/wiki/YAML •yaml.org Technology stack YAML
  48. • • • • • Technology stack PHPUnit

  49. Guzzle – for fetching content from URLs (replaced drupal_http_request) EasyRDF

    – for parsing RDF into PHP Zend_Feed – for processing Feeds Technology stack New 3rd Party Libraries
  50. Drupal

  51. Need to know •How to find, create, load and work

    with Plugin’s Resources •Plugin Documentation drupal.org/node/2087839 •Plugin System Deep Dive, portland2013.drupal.org/session/drupal-8-plugin- system-deep-dive Drupal Plugin’s
  52. •Drupal 8 – Info hook to plugin @pwolanin Wed 17.00

    – 18.00, Club A Drupal Plugin sessions
  53. Need to know • Entities are Classed objects with a

    defined Interface • Fields are bound to entities, and no longer shared across bundles • How to access entity properties and fields • How to define new Entities Resources • Entity API Change Record drupal.org/node/1400186 • Entity API documentation stub (incomplete), drupal.org/node/2078191 Drupal Entity API
  54. Drupal Entity API

  55. Need to know • How to load and save config

    data • Creating and working with Config Entities • How config data is managed Resources • • • • Drupal Configuration API & Config Entities
  56. Need to know •How to write Symfony2 routes •hook_menu() only

    does menu’s now Drupal Routes
  57. • • • • Drupal Routing resources

  58. Need to know •Many Drupal functions are now “Services” •What

    are Services and how do they work •Using Services Resources •Symfony Service Container, goo.gl/FLsNLc •Introducing the Symfony Service Container, Fabien Drupal Services
  59. Drupal Injected Services example

  60. • • • • Drupal Object-oriented forms

  61. Other new APIs • DateTime • Transliteration • Breadcrumbs •

    Modular authentication • Entity Translation • Image styles • Unicode • Crypt • Timer • New AJAX API • TempStore • Settings/Storage • History JS API
  62. How did you score?

  63. THANK YOU! WHAT DID YOU THINK? Locate this session at

    the DrupalCon Prague website: http://prague2013.drupal.org/schedule Click the “Take the survey” link