Drupal 8: desenvolvendo fora da ilha

57
Desenvolvendo Fora da Ilha

description

As novidades do Drupal 8 CMS. Uma conversa sobre desenvolvimento "Fora da Ilha" e a importância da adoção de componentes do Symfony2 como base de desenvolvimento. Como a nova versão tornará mais fácil o uso de Web Services e a adaptação para diversos dispositivos. Apresentado no ftsl2014

Transcript of Drupal 8: desenvolvendo fora da ilha

Page 1: Drupal 8: desenvolvendo fora da ilha

Desenvolvendo Fora da Ilha

Page 2: Drupal 8: desenvolvendo fora da ilha

Sumário

● O que esperar do Drupal 8 para…o Usuários finais e clientes?o Criadores de sites?o Designers?o Desenvolvedores?

● Quando poderei usá-lo?

Page 3: Drupal 8: desenvolvendo fora da ilha

Modanças para usuários e clientes

Page 4: Drupal 8: desenvolvendo fora da ilha

Melhorias na Expêrincia de Edição

Page 5: Drupal 8: desenvolvendo fora da ilha
Page 6: Drupal 8: desenvolvendo fora da ilha

Editor WYSIWYG no Núcleo!

Page 7: Drupal 8: desenvolvendo fora da ilha

Edição Local

Page 8: Drupal 8: desenvolvendo fora da ilha

Edição Local

Page 9: Drupal 8: desenvolvendo fora da ilha

Nova página de criação de conteúdo

Page 10: Drupal 8: desenvolvendo fora da ilha

Pré-visualização no site

Page 11: Drupal 8: desenvolvendo fora da ilha

Melhorias para dispositivos móveis

Page 12: Drupal 8: desenvolvendo fora da ilha

"Mobile First"

Page 13: Drupal 8: desenvolvendo fora da ilha

Temas e imagens adaptáveis, e breakpoints

Page 14: Drupal 8: desenvolvendo fora da ilha

Painel administrativo

Three screenshots:

1) Admin page, desktop, horizontal toolbar2) Toolbar in iPhone sim (vertical, icons only)3) admin/content in iPhone sim to show responsive tables

Page 15: Drupal 8: desenvolvendo fora da ilha

Acessibilidade

Represent this with a video. Maybe from Dries’ Prague slides? :)

AB: Submitted to the DA via their webform, since unfortunately it has to be on YouTube in order to reference from here. Bleh.

http://www.youtube.com/watch?v=ipOc1km2uEc

Page 16: Drupal 8: desenvolvendo fora da ilha

Mobile-first “overlay”

Page 17: Drupal 8: desenvolvendo fora da ilha

Mudanças para criadores de sites

Page 18: Drupal 8: desenvolvendo fora da ilha

Modelagem de dados melhorada:Novos tipos de campos

Referências Data/Hora

…mais, Link, Phone, Email, Comentários!

Page 19: Drupal 8: desenvolvendo fora da ilha

Modelagem de dados melhorada:Novos tipos de entidades

Blocos com campos

Page 20: Drupal 8: desenvolvendo fora da ilha

Formulários: personalização da aparência dos campos

Page 21: Drupal 8: desenvolvendo fora da ilha

Views no Núcleo!

Page 22: Drupal 8: desenvolvendo fora da ilha

Views = totalmente costumizável...

● Listas administrativas● Conteúdos extras● Galerias de Imagens● Slideshows● Saída em REST● ...com 0 linhas de código!

Page 23: Drupal 8: desenvolvendo fora da ilha

Interface administrativa re-estilizada

Page 24: Drupal 8: desenvolvendo fora da ilha

Melhorias Multi-idiomas

Page 25: Drupal 8: desenvolvendo fora da ilha

Download de traduções

Page 26: Drupal 8: desenvolvendo fora da ilha

Direcionamento de idiomas

Page 27: Drupal 8: desenvolvendo fora da ilha

Tradução para muitos ítens

Page 28: Drupal 8: desenvolvendo fora da ilha

Mudanças para designers

Page 29: Drupal 8: desenvolvendo fora da ilha
Page 30: Drupal 8: desenvolvendo fora da ilha

Elementos de formulário HTML5

Page 31: Drupal 8: desenvolvendo fora da ilha

Novas bibliotecas front-end

Page 32: Drupal 8: desenvolvendo fora da ilha

Exemplo de Twig: node.html.twig<article{{ attributes }}> {{ title_prefix }} {% if not page %} <h2{{ title_attributes }}> <a href="{{ url }}" rel="bookmark">{{ label }}</a> </h2> {% endif %} {{ title_suffix }} {% if display_submitted %} <footer class="node__meta"> {{ author_picture }} <div class="node__submitted {{ author_attributes.class }}"{{ author_attributes|without('class') }}> {% trans %}Submitted by {{ author_name|passthrough }} on {{ date }}{% endtrans %} {{ metadata }} </div> </footer> {% endif %} <div class="node__content {{ content_attributes.class }}"{{ content_attributes|without('class') }}> {{ content|without('links') }} </div> {% if content.links %} <div class="node__links"> {{ content.links }} </div> {% endif %}</article>

1. HTML5 tags2. {{ print a variable }}3. {% logic(stuff) %}

Page 33: Drupal 8: desenvolvendo fora da ilha

Saída Schema.org Nativa

Page 34: Drupal 8: desenvolvendo fora da ilha

TODO: Check license.

Suporte extinto para IE 6 & 7(e muito do 8)

Page 35: Drupal 8: desenvolvendo fora da ilha

Mudanças para desenvolvedores

0100010001110010011101010111000001100001011011000010000000111000

Page 36: Drupal 8: desenvolvendo fora da ilha

Gerenciamento de Configurações

dev stage prod

Page 37: Drupal 8: desenvolvendo fora da ilha

Dev

Prod

Page 38: Drupal 8: desenvolvendo fora da ilha
Page 39: Drupal 8: desenvolvendo fora da ilha
Page 40: Drupal 8: desenvolvendo fora da ilha

Integração com Drush!

Page 41: Drupal 8: desenvolvendo fora da ilha

Web Services

Page 42: Drupal 8: desenvolvendo fora da ilha

Symfony Framework

● HttpFoundation● HttpKernel● Dependency

Injection● EventDispatcher● Routing● Yaml

Page 43: Drupal 8: desenvolvendo fora da ilha

GETting data out of Drupal:RESTful Web Services module

Page 44: Drupal 8: desenvolvendo fora da ilha

GETting data into Drupal: Guzzle$client = \Drupal::httpClient();$config = \Drupal::config('3rdparty.settings');

// Format arguments for passing in URL.$arg = urlencode($argument);

// Pull data from 3rd party's REST API.$api_key = $config->get('api_key');$request = $client->get("http://3rdparty.com/$arg/?key=$api_key");

// Get the response and do something with it.$response = $request->send();$json = $response->json();

...

Page 45: Drupal 8: desenvolvendo fora da ilha

"Saindo da Ilha"

Page 46: Drupal 8: desenvolvendo fora da ilha

Não inventado aqui"Orgulhosamente encontrado em outro lugar"

● Código muito mais moderno e orientado a objetos (classes, inheritance, interfaces, etc.)

● Adotando padrões de código PHP (ex.: PSR-0, namespaces, traits)

● Usando muitas das melhores bibliotecas: Composer, PHPUnit, Guzzle, Zend Feed Component, Assetic...

Page 47: Drupal 8: desenvolvendo fora da ilha

Pegue todas as mudanças!

https://drupal.org/list-changes

Page 48: Drupal 8: desenvolvendo fora da ilha
Page 49: Drupal 8: desenvolvendo fora da ilha

Ok, mas quando vou poder usar essa maravilha?!

"Quando estiver pronto."

Page 50: Drupal 8: desenvolvendo fora da ilha

ReleaseFinalização da API

Drupal 8 timeline

Desenvolvimento de recurços

Início do Desenvolvimento

Março 2011

Feature freezeDez de 2012

Feature complete

Fev de 2013

API freezeJulho de 2013

Drupal 8.0.0(quando estará

pronto)

AlphasDevelopment snapshots

BetasMaiores APIs

trancadas

RCsAPI e Recursos

completos

Estamos aqui

Page 51: Drupal 8: desenvolvendo fora da ilha

Quando "estará pronto"?

● Quando houver 0 questões críticas, sai o RC.

● Quando for entregue um novo RC sem novas questões críticas, sai o 8.0.0!

Page 52: Drupal 8: desenvolvendo fora da ilha

Onde é preciso ajuda?

● Encontrando e corrigindo bugs

● Desempenho● Caminho de migração● Adaptação de projetos● DOCUMENTAÇÃO!● EXEMPLOS!● FERRAMENTAS!● TESTE, TESTE, TESTE!

https://drupal.org/contribute

Page 53: Drupal 8: desenvolvendo fora da ilha

Quando devo usar o Drupal 8?

Fique de olho em https://drupal.org/project/usage/drupal:

Alphas, *Já*!(há tempo para corrigir

APIs!)

Betas/RCs(pro final de

2014)

Assim que as linhas crusarem

(~2015)

Plataforma comprovada

Drupal 8.x / 9.

Desenvolvedor de módulo / tema

Adoção prematura / final de 2014+

Adoção posterior/ Em 2015+ Conservador

Page 54: Drupal 8: desenvolvendo fora da ilha

O que é essa conversa de 8.0.0?● Drupal 8 usará versionamento semântico● Drupal 8.1.0 incluirá novos recursos e/ou

APIs● Novos lançamentos serão (na maioria)

compatíveis com anteriores● Novos lançamentos 8.x a cada 6 meses

(planejado)● Não precisa esperar anos por novidades● Correções de bugs em versões menores,

ex.: 8.1.5https://drupal.org/node/2135189

Page 55: Drupal 8: desenvolvendo fora da ilha

E sobre atualização?● Ao invés de um caminho de atualização, Drupal

8 terá uma caminho de migração!● Algumas migrações de Drupal 6 já estão

incluídas, mais em https://groups.drupal.org/imp ● Para checar estados de atualização de

módulos, veja: https://drupal.org/project/upgrade_status

● Outras dicas: https://www.acquia.com/blog/getting-your-site-ready-drupal-8

Page 56: Drupal 8: desenvolvendo fora da ilha

E meus próprios módulos?

● Use https://www.drupal.org/project/drupalmoduleupgrader para iniciar a atualização de seu código.

● Se você precisa iniciar um novo módulo, veja https://www.drupal.org/project/console