Presented by Larry Garfield and Jeff Eaton
We're from the future...
We're on a mission from Dries
The world as we know it
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 a response
All home grown
Embrace other communities and tools
A good start for a CMS
Build real-world sites right away
Build real sites with core
Drupal 7 gave us Field API...
... Drupal 8 expands the toolbox
If you're a content strategist,
Drupal 8 speaks your language.
Mixing content and config == Pain
Poor deployment tool
...Because it's not a deployment tool
Drupal 7 has no common configuration system!
WAI-ARIA all the things!
Keyboard control
Audio. No, for serious.
(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
Content migration system in core
Migrate directly from Drupal 6 (Drupal 7 soon)
Migrate from any CMS, DB, etc…
Contributors to Drupal 8
1984 and counting
Together
Sr. Architect, Palantir.net
Making the Web a Better Place
Keep tabs on our work at @Palantir
Want to hear about what we're doing?
Digital Strategist, Lullabot
Strategy, Design, Development
Read stuff at Lullabot.com
Listen to Lullabot podcasts