Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
3. What are we doing here
tonight?
• Go through top 8 changes for Drupal 8, in order of
meekness. ;)
• Walk through some of the bigger API changes in D8
for module developers
• Talk about when D8 is coming and how you can
help
21. One core system to solve
this mess
variable_set()/variable_get()
ctools_export_object()/ctool
s_export_load_object()
db_select()/db_update()/d
b_delete()
$conf[...];
hook_update_N()
drush fu
44. 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
45. Choose Your Own Data
Adventure
• While you can do it, it's now considered unusual to store data
directly in the database; choose one of the following:
• Content Entities: Use for 1000s+ of records; fieldable.
Ex: Nodes, Users, Comments, Feeds, Terms
• Config Entities: Use for 10s of records; create in UI, deploy.
Ex: Views, Text Formats, Image Styles, Vocabularies
• Config API: Use for 1s of records; things you want deployed.
Ex: most admin/config/foo forms
• Settings API: Use for 1s of records; things specific to an
environment; not deployed. Ex: timestamps, hashes, keys
46. Read more about it!
Plaster these URLs to your face:
https://api.drupal.org/api/drupal/8
https://www.drupal.org/documentation/developer/api
47. Every API change in Drupal 8
Plaster this URL to your cat's face:
https://www.drupal.org/list-changes
48. Rocket fuel to get started
Plaster this URL to your dog's face:
https://www.drupal.org/project/drupalmoduleupgrader
50. Current Release Status
• There are ~100 “critical” issues
left to solve that block release.
• Of these, ~5 are “beta blockers”
that block the beta release.
• “Beta” marks the time at which
module developers can start re-
writing their code on top of
Drupal 8.
• Without lots of modules being
ready, Drupal 8 will not have a
successful launch, so we are
trying to get beta right.
alpha
releases
bet
a RC1
we are here!
x
“WHEN IT’S
READY”
(~Q2 2015)
https://groups.drupal.org/core/updates
51. When should I start using it?
• Module/Theme developer?
• Right now!
• Provide early API feedback while things can still be changed.
• Early Adopter?
• Start building test sites during beta/RC
• Be prepared to "BYOBF" (bring your own bug fixes)
• Late Adopter?
• 6+ months after Drupal 8.0.0
• Wait for enough contrib modules to be ported
52. What about upgrades?
• No more upgrade path; now, migration path.
• Build out your Drupal 8 site as a new site, then
migrate content, users, etc. over.
• Drupal 6 => Drupal 8 migrations already in!
• Drupal 7 => Drupal 8 migrations in progress.
https://www.drupal.org/upgrade/migrate
53. What if I'm stuck on D7 for
the foreseeable future?
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
54. How can I help?
• Start porting your modules/themes!
• Give "developer experience" feedback while we can still fix
things
• Help us find/fix holes in documentation
• Build a practice site or two
• Test out the D6 => D8 migration path!
• Find/File bug reports (with patches if you can!)
• Help kill critical core issues! :D
55. Want the full scoop?
https://www.drupal.org/drupal-8.0
https://www.acquia.com/tags/ultimate-guide-drupal-8
@TODO: Obviously, put your stuff instead. :)
I work at Acquia in the Office of the CTO; Dries is my boss. :)
Very focused on community stuff, such as making Drupal core, Drupal.org, and the Drupal Association rock!
I’m also one of the authors of the O’Reilly book Using Drupal (give shout-out to Bruno), which covers all the key contributed modules worth knowing about; just updated for Drupal 7.
Here we see the default Drupal 7 authoring experience.
I like to call this video "why people say WordPress before Drupal" ;)
Redesigned content page
No more 1 block in only 1 region in each theme limitation
Context system for blocks
Fieldable custom block types, analogous to content types