Tudo que você precisa saber sobre as principais alterações no Drupal 8

61
Tudo o que você precisa saber sobre 8 principais mudanças no Drupal 8 Escrito por: Angela "@webchick" Byron Apresentado por: Diego Lorenzetti, Brenno Valerio e Leo Nunes Traduzido por: 22 de setembro de 2015

Transcript of Tudo que você precisa saber sobre as principais alterações no Drupal 8

Page 1: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Tudo o que você precisa saber sobre 8 principais mudanças no Drupal 8

Escrito por: Angela "@webchick" Byron Apresentado por: Diego Lorenzetti, Brenno Valerio e Leo Nunes Traduzido por:

22 de setembro de 2015

Page 2: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Diego Lorenzetti [email protected] https://goo.gl/uJ6Em6 Desenvolvedor na:

Sobre mim:

Page 3: Tudo que você precisa saber sobre as principais alterações no Drupal 8

O que faremos nesse

Webinar? •  Analisaremos oito principais mudanças do Drupal 8,

em ordem de "nerdice" ;)

•  Passaremos por algumas das maiores mudanças na API do Drupal 8 para desenvolvedores de módulos

•  Responderemos a perguntas frequentes

•  Perguntas & Respostas

Page 4: Tudo que você precisa saber sobre as principais alterações no Drupal 8

1. Experiência de Criação de Conteúdo

Melhorada

Page 5: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 6: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 7: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 8: Tudo que você precisa saber sobre as principais alterações no Drupal 8

2. (Mobile First)

Page 9: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 10: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 11: Tudo que você precisa saber sobre as principais alterações no Drupal 8

3. Melhorias no Site Builder

Page 12: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Módulo Views no Core!

Page 13: Tudo que você precisa saber sobre as principais alterações no Drupal 8

O que faz o Módulo Views? Cria elementos totalmente customizáveis como:

•  Listagens

•  Conteúdos na barra lateral

•  Galerias de imagens

•  Slideshows

•  Saída de dados XML/ JSON

Page 14: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Blocos Melhorados

Page 15: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Novos Tipos de Campos

Page 16: Tudo que você precisa saber sobre as principais alterações no Drupal 8

4. Multilíngue++

Page 17: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 18: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Tudo é Traduzível! •  Estilos de imagens

•  Formatos de textos

• Comentários

•  Feeds

•  ... e mais!

Não são necessários módulos contrib!

• Conteúdo

•  Blocos

• Menus

•  Perfis de usuários

•  Taxonomias

•  Views

Page 19: Tudo que você precisa saber sobre as principais alterações no Drupal 8

5. Gerenciamento de Configurações

Page 20: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 21: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 22: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 23: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 24: Tudo que você precisa saber sobre as principais alterações no Drupal 8

6. Melhorias no Desenvolvimento Front-end

Page 25: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 26: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Formulários HTML

Page 27: Tudo que você precisa saber sobre as principais alterações no Drupal 8

PHPTemplate agora é Twig 7.x: page.tpl.php

•  Sintaxe amigável para designers •  Variáveis auto-escaped para melhor segurança http://twig.sensiolabs.org

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; ?>" print

alt="<?php 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 %}

Page 28: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Fim do suporte nativo ao IE 6, 7 e 8

Page 29: Tudo que você precisa saber sobre as principais alterações no Drupal 8

7. Web Services

Page 30: Tudo que você precisa saber sobre as principais alterações no Drupal 8
Page 31: Tudo que você precisa saber sobre as principais alterações no Drupal 8

8. Código Moderno, Orientado a Objetos

Page 32: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Atenção: as coisas estão prestes a se tornar... geeky

Page 33: Tudo que você precisa saber sobre as principais alterações no Drupal 8

"Saindo da Ilha"

Page 34: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Melhores e Modernas Práticas PHP

• PHP 5.4+ •  Classes/Interfaces

•  Namespaces

•  Traits

•  Dependency Injection

•  Maioria dos padrões PSR-*

Page 35: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Powered by Symfony2

Tutorial: http://fabien.potencier.org/article/50/create-your-own-framework-on-

top-of-the-symfony2-components-part-1

Page 36: Tudo que você precisa saber sobre as principais alterações no Drupal 8

…e dezenas de bibliotecas

de primeira linha

Page 37: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Um olhar sob o capô

Page 38: Tudo que você precisa saber sobre as principais alterações no Drupal 8

YAML, YAML por toda parte

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

•  Requer nova propriedade "type" •  Sem mais arquivos[] (explicaremos mais

tarde) •  Caminhos agora tem nome de máquina

para ajudar a prevenir quebra (explicaremos mais tarde)

Drupalismo: Tipo ini "Orgulhosamente inventado em outro lugar": YAML

Page 39: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Classes, classes por toda parte

sites/all/modules

example ▼

example.test

7.x ▼ modules

example

8.x ▼

src ▼ ExampleController.php ExampleForm.php

ExampleInterface.php

Páginas, formulários, blocos, etc. agora são orientados a objetos.

Page 40: Tudo que você precisa saber sobre as principais alterações no Drupal 8

"Hello World" no Drupal 7 example.module

Drupalismo: "ArrayPIs" ;)

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.'); }

Page 41: Tudo que você precisa saber sobre as principais alterações no Drupal 8

"Hello world" no Drupal 8

<?php namespace Drupal\example; use Drupal\Core\Controller\ControllerBase; /** * Returns responses for Example module routes.

*/ class ExampleController extends ControllerBase { public function hello() {

return new Response($this->t('Hello world.')); } }

"Orgulhosamente inventado em outro lugar":

- PSR-4 Class Autoloader - YAML

-Código OO

example.routing.yml example.hello:

path: '/hello' defaults: _content: '\Drupal\example\ExampleController::hello' requirements: _permission: 'access content’

Page 42: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Definindo um bloco: 7.x

Drupalismo: APIs "Mystery Meat" baseadas em convenções de nomenclatura

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; }

Page 43: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Definindo um bloco: 8.x src/Plugin/Block/ExampleBlock.php

"Orgulhosamente Inventado em outro lugar": - Annotations

- APIs definidas por Interfaces

<?php namespace Drupal\example\Plugin\Block; use Drupal\block\BlockBase; /** * 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.') )); }

}

Page 44: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Leia mais sobre isso!

https://www.drupal.org/documentation/developer/api https://api.drupal.org/api/drupal/8

Page 45: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Todas as mudanças na API do Drupal 8

https://www.drupal.org/list-changes

Page 46: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Sumário das novidades!

•  Experiência de Criação de Conteúdo melhorada

•  Mobile First •  Views, expandindo a

modelagem de conteúdo •  Multilíngue++

•  Gerenciamento de Configurações

•  Twig & HTML5

•  Web Services

•  Código Moderno, Orientado a Objetos

…e centenas de outras melhorias!

Escopo completo: https://www.acquia.com/resources/ ebooks/ultimate-guide-drupal-8

Page 47: Tudo que você precisa saber sobre as principais alterações no Drupal 8

MAIS DE 2.900 pessoas contribuíram com o Drupal 8 até

agora!

Page 48: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Repostas para suas perguntas

sobre o Drupal 8!

Page 49: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Quando o Drupal 8 será lançado?

Page 50: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Quando é "quando estiver pronto"?

https://www.drupal.org/drupal-8.0/get-involved

Algum tempo depois desse gráfico atingir zero.

Page 51: Tudo que você precisa saber sobre as principais alterações no Drupal 8

O que falta nessa lista?

•  Correções/melhorias na performance

•  Correções/melhorias de

segurança

•  Upgrade de versão beta-para-beta

•  À prova de futuro: (PHP7,

Symfony 3, etc.)

Page 52: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Beta -> rc -> 8.0.0 •  WHILE COUNT de problemas

críticos >0, crie versões beta mensamenlte (estamos aqui!)

•  IF problemas críticos === 0, comece versões candidatas a lançamento bi-semanais (assim como no D6 e D7)

•  Apenas consertos críticos ou patches extremamente não disruptivos são comitados durante RC, para previnir regreções.

https://www.drupal.org/core/release-cycle#rc

•  Uma vez que contagem, grau, e natureza dos problemas críticos parecerem gerenciáveis, marque uma data de lançamento para >= 3 semanas depois

Page 53: Tudo que você precisa saber sobre as principais alterações no Drupal 8

O que acontece depois do 8.0.0? •  O suporte ao Drupal 6 termina 3 meses

depois do lançamento do Drupal 8.0.0's.

•  Lançamentos de correções de bugs continuam na programação mensal como é agora no D6/D7.

•  Novos lançamentos de "feature" do Drupal 8 a cada 6 meses (8.1.x, 8.2.x…).

•  Drupal 9 se previsão até muito tempo depois, quando tiver "carne" o bastante (completadas as propostas de mudança que não podem ser comitadas no 8.x) para fazer um produto convincente.

•  Drupal 8 entra no modo "LTS“ (apenas correções de segurança) depois do Drupal 9.

Page 54: Tudo que você precisa saber sobre as principais alterações no Drupal 8

E sobre os upgrades?

Caminho de migração entre versões principais (6/7 => 8)

Construa seu site em Drupal 8 como um novo site, depois igre o conteúdo, usuários, etc.

Drupal 6 => 8 já existem migrações! Drupal 7 => 8 migrações em progresso.

Deve-se fazer a portabilidade de seu próprio código customizado; fique com seus módulos conhecidos se possível!

Caminho de upgrade entre versões 8.x Ainda não tem suporte nativo; veja no contrib:

https://www.drupal.org/project/head2head

Page 55: Tudo que você precisa saber sobre as principais alterações no Drupal 8

http://www.drupal.org/project/drupalmoduleupgrader

Dê início à portabilidade do seu código customizado

Page 56: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Quando eu posso usar o D8?

Page 57: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Alguns pioneiros já começaram...

Page 58: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Quando o D8 será usado pela

maioria?

Desenvolvedores de Temas e

Módulos

*Agora*! (ainda dá tempo de corrigir APIs!)

Maioria

Quando essas linhas se cruzarem

total

D8

D7

Pioneiros

Quando houver suporte para

upgrade beta-para-beta

Plataforma provada, mas a

comunidade esperando o D9

Conservadores

Deixe a comunidade ser seu guia. https://www.drupal.org/project/usage/drupal

Page 59: Tudo que você precisa saber sobre as principais alterações no Drupal 8

http://www.slideshare.net/ahorncologne/why-drupal-8-why-now-aprmay-2015

De extrema importância Time de desenvolvimento

limitado Time de experts,

confortável realizando reparos

Devs sentem-se mais confortáveis com código

procedural

Devs sentem-se mais confortáveis com código OO e

Symfony

Menos urgente

Brochuware Muitos recursos

Público

Rápida Publicação Necessidades complexas

Drupal 8

Drupal 7

Interno / R&D / Protótipo

Feito com o que está no core

Experimental

Estou fazendo um site novo. Começo com D7 ou D8?

Page 60: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Ficando com o D7? Saiba como obter as vantagens do D8 hoje!

Features Nativas do D8 Contribuições Equivalentes do D7 WYSIWYG CKEditor: https://drupal.org/project/ckeditor

Edição no Local Quick Edit: https://drupal.org/project/quickedit

Barra de Ferramentas Responsiva “Mobile Friendly Navigation Toolbar" https://drupal.org/project/navbar

Front-End Responsivo Omega, Zen, Adaptive, etc. base themes Admin Responsivo Ember: https://drupal.org/project/ember

Imagens Responsivas Picture: https://drupal.org/project/picture Tabelas Responsivas Responsive Tables: https://drupal.org/project/responsive_tables

Overlay Simplificado Escape Admin: https://drupal.org/project/escape_admin Multilíngue Internationalization: https://www.drupal.org/project/i18n

Entity Translation: https://www.drupal.org/project/entity_translation

Blocos Melhorados Bean: https://www.drupal.org/project/bean Configurações Features: https://www.drupal.org/project/features

Web Services RESTful Web Services: https://www.drupal.org/project/restws

Page 61: Tudo que você precisa saber sobre as principais alterações no Drupal 8

Obrigado! :) Perguntas?