Drupal 8: desenvolvendo fora da ilha

Post on 26-Jun-2015

115 views 5 download

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

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?

Modanças para usuários e clientes

Melhorias na Expêrincia de Edição

Editor WYSIWYG no Núcleo!

Edição Local

Edição Local

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

Pré-visualização no site

Melhorias para dispositivos móveis

"Mobile First"

Temas e imagens adaptáveis, e breakpoints

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

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

Mobile-first “overlay”

Mudanças para criadores de sites

Modelagem de dados melhorada:Novos tipos de campos

Referências Data/Hora

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

Modelagem de dados melhorada:Novos tipos de entidades

Blocos com campos

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

Views no Núcleo!

Views = totalmente costumizável...

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

Interface administrativa re-estilizada

Melhorias Multi-idiomas

Download de traduções

Direcionamento de idiomas

Tradução para muitos ítens

Mudanças para designers

Elementos de formulário HTML5

Novas bibliotecas front-end

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) %}

Saída Schema.org Nativa

TODO: Check license.

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

Mudanças para desenvolvedores

0100010001110010011101010111000001100001011011000010000000111000

Gerenciamento de Configurações

dev stage prod

Dev

Prod

Integração com Drush!

Web Services

Symfony Framework

● HttpFoundation● HttpKernel● Dependency

Injection● EventDispatcher● Routing● Yaml

GETting data out of Drupal:RESTful Web Services module

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();

...

"Saindo 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...

Pegue todas as mudanças!

https://drupal.org/list-changes

Ok, mas quando vou poder usar essa maravilha?!

"Quando estiver pronto."

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

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!

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

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

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

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

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

Obrigado!eu@luizca.net