Presented by Larry Garfield
Presenting... the future!
What's wrong with Drupal 7?
Contributors to Drupal 7
954
Just one teeny little problem...
Drupal is an 13 year old, PHP 4-based extensible Slashdot clone originally written by a Belgian college kid.
Drupal needs to evolve, and quickly, from a first-class web CMS into a first-class REST server that includes a first-class web CMS.
Drupal 8 is a new generation
PHP framework/CMS
PHP 4 architecture
PHP 5.4 architecture
Everything is a Page
Everything is an response
All home grown
Embrace other communities and tools
A good start for a CMS
Fully capable from day 1
Drupal 8 is finally useful
Drupal 7 gave us Fields API...
... Drupal 8 gives us Fields to use
If you're a content strategist,
Drupal 8 is the system for you.
Because database config is for lusers
Poor deployment tool
...Because it's not a deployment tool
Drupal 7 has no common configuration system!
All right there, right from the new multilingual installer...
zOMG WYSIWYG in core!!1!
WAI-ARIA all the things!
Keyboard control
Those responsible for the previous
videos have been sacked.
Bye bye Overlay...
But how do I use all of this new fangledness?
(aka "Help module wishes it were this cool")
(There's an IE8 module if you really need)
Lines of Javascript by default: 0
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
<?php print $user_picture; ?>
<?php print render($title_prefix); ?>
<?php if (!$page): ?>
<h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
<?php endif; ?>
<?php print render($title_suffix); ?>
<?php if ($display_submitted): ?>
<div class="submitted">
<?php print $submitted; ?>
</div>
<?php endif; ?>
<div class="content"<?php print $content_attributes; ?>>
<?php
hide($content['comments']);
hide($content['links']);
print render($content);
?>
</div>
<?php print render($content['links']); ?>
<?php print render($content['comments']); ?>
</div>
<article id="node-{{ node.id }}" class="{{ attributes.class }} clearfix"{{ attributes }}>
{{ title_prefix }}
{% if not page %}
<h2{{ title_attributes }}>
<a href="{{ node_url }}" rel="bookmark">{{ label }}
</h2>
{% endif %}
{{ title_suffix }}
{% if display_submitted %}
<footer>
{{ user_picture }}
<p class="submitted">{{ submitted }}
</footer>
{% endif %}
<div{{ content_attributes }}>
{# We hide links now so that we can render them later. #}
{% hide(content.links) %}
{{ content }}
</div>
{{ content.links }}
</article>
And one more thing...
Now with 25% fewer divs*
* Compared to the previous leading Drupal.
Actual divs may vary by custom theme.
Offer void on IE 6.
Learn once, apply everywhere—Lee Rowlands
Unified API... finally!
RESTful pipeline
... HTML is just REST
Migration system in core
Migrate directly from Drupal 6 (Drupal 7 soon)
Migrate from any system
Contributors to Drupal 8
1903 and counting
Wait, where are the Kiwis?
Together
Senior Architect, Palantir.net
Drupal core developer
PHP-FIG representative
Loveable pedant
Yell at me on Twitter: @Crell
Stalk me professionally at @Palantir