Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Everything You Need to Know About the Top Changes in Drupal 8

19,428 views

Published on

<p>Drupal 8 is on the way. And we know you want to know -- what does this mean for me?!</p>

<p>Don't fear, Angie 'webchick' Byron is here! This one hour webinar will provide you with detailed overviews on the major changes in Drupal 8, as well as several short video demos that will give you a glimpse into a few of the newest features and capabilities. Angie will explain what D8 means for:</p>

<ul>
<li>Site Builders: See Views in Core, more (and better) blocks, improved entity and field features...the list goes on!</li>
<li>Front-end Developers: We're talking HTML5, libraries, accessibility enhancements, new themes and UI elements, and faster performance, to name a few.</li>
<li>Back-end Developers: A new configuration management system, a completely rehauled Entity API, improved caching, and new built-in web services features.</li></ul>

Published in: Technology

Everything You Need to Know About the Top Changes in Drupal 8

  1. 1. Everything You Need to Know About the Top 8 Changes in Drupal 8 Angela "@webchick" Byron May 26, 2015
  2. 2. About me
  3. 3. What are we doing here? • Go through top 8 changes for Drupal 8, in order of geekiness. ;) • Walk through some of the bigger API changes in D8 for module developers • Answers to frequently asked questions • Q&A
  4. 4. 1. Improved Authoring Experience
  5. 5. 2. Mobile First
  6. 6. 3. Site Builder Improvements
  7. 7. Views in Core!
  8. 8. What is Views module? • Create fully customizable: • Admin listings • Sidebar content • Image galleries • Slideshows • XML/JSON output • …with zero lines of code!
  9. 9. Better Blocks
  10. 10. New Field Types
  11. 11. 4. Multilingual++
  12. 12. Translatable Everything! • Content • Blocks • Menus • User Profiles • Taxonomy • Views • Image styles • Text formats • Comments • Feeds • …and more! • No contributed modules needed!
  13. 13. 5. Configuration Management
  14. 14. 6. Front-end developer improvements
  15. 15. HTML5 Forms
  16. 16. PHPTemplate is now Twig 7.x: page.tpl.php 8.x: page.html.twig <div id="page-wrapper"> <div id="page"> <div id="header"> <div class="section clearfix"> <?php if ($logo): ?> <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"> <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /> </a> <?php endif; ?> <div class="layout-container">   <header role="banner"> {% if logo %} <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home"> <img src="{{ logo }}" alt="{{ 'Home'|t }}"/> </a> {% endif %} • Friendlier syntax for designers • Variables auto-escaped for better security http://twig.sensiolabs.org
  17. 17. No more (core) support for
 IE 6, 7, & 8
  18. 18. 7. Web Services
  19. 19. 8. Modern, OO Code
  20. 20. Warning: Things are about to get... geeky.
  21. 21. "Getting off the Island"
  22. 22. Modern PHP Best Practices • PHP 5.4+ • Classes/Interfaces • Namespaces • Traits • Dependency Injection • Most PSR-* standards
  23. 23. Powered by Symfony2 Tutorial: http://fabien.potencier.org/article/50/create-your-own- framework-on-top-of-the-symfony2-components-part-1
  24. 24. …and dozens of other "best of breed" libraries
  25. 25. …and dozens of other librariesA peek under the hood
  26. 26. YAML, YAML everywhere 7.x: example.info 8.x: example.info.yml name = Example description = "Example module" core = 7.x files[] = example.test config = admin/config/example dependencies[] = node name: Example type: module description: "Example module" core: 8.x
 config: admin.example dependencies: - node • New required "type" property • No more files[] (we'll get to that later) • Paths now have machine names to help prevent breakage
 (we'll get to that later, too) Drupalism: Kinda- Sorta-INI-Like "Proudly Invented Elsewhere": YAML
  27. 27. Classes, classes everywhere sites/all/modules example ▼ ▼ example.test 7.x modules example ▼ ▼ 8.x src▼ ExampleForm.php ExampleInterface.php ExampleController.php … Pages, forms, blocks, etc. are now all object-oriented.
  28. 28. "Hello World" in Drupal 7 function example_menu() { $items['hello'] = array( 'title' => 'Hello world', 'page callback' => '_example_page', 'access callback' => 'user_access', 'access arguments' => 'access content', ); return $items; }   function _example_page() { return t('Hello world.'); } example.module Drupalism: "ArrayPIs" ;)
  29. 29. "Hello World" in Drupal 8 example.hello: path: '/hello' defaults: _content: 'DrupalexampleExampleController::hello' requirements: _permission: 'access content' example.routing.yml <?php   namespace Drupalexample;   use DrupalCoreControllerControllerBase;   /** * Returns responses for Example module routes. */ class ExampleController extends ControllerBase { public function hello() { return new Response($this->t('Hello world.')); } } src/ExampleController.php "Proudly Invented Elsewhere": - YAML
 - PSR-4 Class Autoloader - OO code
  30. 30. Defining a block: 7.x example.module <?php function example_block_info() { $blocks['example'] = array( 'info' => t('Example block'), ); return $blocks; } function example_block_view($delta = '') { $block = array(); switch ($delta) { case 'example': $block['subject'] = t('Example block'); $block['content'] = array( 'hello' => array( '#markup' => t('Hello world'),
 ), ); break; } return $block; } Drupalism: "Mystery Meat" APIs based on naming conventions
  31. 31. Defining a block: 8.x <?php namespace DrupalexamplePluginBlock; use DrupalblockBlockBase; /** * Provides the Example block. * * @Block( *  id = "example", *  admin_label = @Translation("Example block"), * category = @Translation("Example") * )
 */ 
 class ExampleBlock extends BlockBase { public function build() { return array('hello' => array( '#markup' => $this->t('Hello world.') )); } 
 } src/Plugin/Block/ExampleBlock.php "Proudly Invented Elsewhere":
 - Annotations - APIs defined by Interfaces
  32. 32. Read more about it! https://api.drupal.org/api/drupal/8 https://www.drupal.org/documentation/developer/api
  33. 33. Every API change in Drupal 8 https://www.drupal.org/list-changes
  34. 34. Summary of Awesomeness • Improved Authoring Experience • Mobile First • Views, expanded content modeling • Multilingual++ • Configuration Management • Twig & HTML5 • Web Services • Modern, OO Code • …and literally hundreds of other improvements! • Full scoop: https:// www.acquia.com/ resources/ebooks/ ultimate-guide-drupal-8
  35. 35. More than 2,900
 people have contributed to Drupal 8 so far!
  36. 36. Answers To Your Burning Drupal 8 Questions!
  37. 37. When will Drupal 8 be released?
  38. 38. When is "when it's ready"? Sometime after this graph hits zero. https://www.drupal.org/drupal-8.0/get-involved
  39. 39. What's left in that list? • Performance fixes/ improvements • Security fixes/improvements • Beta-to-beta upgrade path • Future-proofing (PHP7, Symfony 3, etc.)
  40. 40. beta -> rc -> 8.0.0 • While count of critical issues > 0, create monthly beta releases (we are here!) • If critical issues === 0, start bi- weekly release candidates (same as D6/D7 release windows) • Only critical fixes or extremely non-disruptive (e.g. docs) patches committed during RC, to prevent regressions. • Once count, rate, and nature of criticals seem manageable, set a release date >= 3 weeks later. https://www.drupal.org/core/release-cycle#rc alpha 
 release beta RC1 we are here! x “WHEN IT’S READY”
  41. 41. What happens after 8.0.0? • Drupal 6 support dropped 3 months after Drupal 8.0.0's release. • Bug fix/security releases continue on monthly schedule as now in D6/D7. • New "feature releases" of Drupal 8 every 6 months (8.1.x, 8.2.x…) with non-BC breaking improvements. • Drupal 9 not branched until much later, when there's enough "meat" (completed change proposals which can't be committed to 8.x) to make a compelling product • Drupal 8 enters "LTS" mode (security fixes only) after Drupal 9.0.0 D6 SUPPORT ENDS 8.2.08.1.0 NEW
 FEATURES NEW
 FEATURES … NEW 
 FEATURES
  42. 42. What about upgrades? • Upgrade path between 8.x versions • Not supported in core yet; see https://www.drupal.org/project/ head2head in contrib for now • Migration path between major versions (6/7 => 8) • Build out your Drupal 8 site as a new site, then migrate content, users, etc. over. • Drupal 6 => 8 migrations already in! Drupal 7 => 8 migrations are in progress. • Must port your own custom code; stick with well-used contrib modules if you can!
  43. 43. Kick-start your custom code porting https://www.drupal.org/project/drupalmoduleupgrader
  44. 44. When can I use D8?
  45. 45. Some early adopters are already using it…
  46. 46. When will most people use D8? Module/Theme developer *Right now*! (still have time to fix APIs!) Majority Once these lines cross total D8 D7 Early adopter Once beta-to-beta
 upgrade path supported
 (port your own contribs) Conservative Platform’s proven, but community’s looking forward to Drupal 9. Let the community be your guide. https://www.drupal.org/project/usage/drupal
  47. 47. I'm building a new site now. Should I start with D7 or D8? http://www.slideshare.net/horncologne/ why-drupal-8-why-now-aprmay-2015 Drupal 7 Drupal 8 Public facing Internal / R&D / Prototype Rapid deployment Less urgent Large, complex needs Can be done with what's in core Full feature set Brochureware Mission critical Experimental Limited development team Expert development team, comfortable patching upstream Developers more comfortable with procedural code Developers more comfortable with OO code / Symfony
  48. 48. Sticking with D7?
 Here's how to get D8 hotness today! Drupal 8 Core Feature Drupal 7 Contrib Equivalent WYSIWYG CKEditor: https://drupal.org/project/ckeditor In-Place Editing Quick Edit: https://drupal.org/project/quickedit Responsive Toolbar “Mobile Friendly Navigation Toolbar"
 https://drupal.org/project/navbar Responsive Front-End Theme Omega, Zen, Adaptive, etc. base themes Responsive Admin Theme Ember: https://drupal.org/project/ember Responsive Images Picture: https://drupal.org/project/picture Responsive Tables Responsive Tables: https://drupal.org/project/responsive_tables Simplified Overlay Escape Admin: https://drupal.org/project/escape_admin Multilingual Internationalization: https://www.drupal.org/project/i18n
 Entity Translation: https://www.drupal.org/project/entity_translation Better Blocks Bean: https://www.drupal.org/project/bean Configuration Management Features: https://www.drupal.org/project/features Web Services RESTful Web Services: https://www.drupal.org/project/restws
  49. 49. Thanks! :) Questions?

×