HackaTaller


Hackathon 

Drupal 8

PQ portar módulos?



Ponto de partida para o aprendizado

Problemas reais a serem resolvidos

Assimilação da nova API na prática

Acelerar a adoção da nova versão (D8CX)

Incentivo para conhecer melhor o Core

Incentivo para aprender Synfony, Guzzle, PHPUnit, Twig [...]


Requisitos




PHP 5.4+

Drupal 8 alpha 13

Drush 7.0


Ubuntu Juju / Vagrant / *

IDE / Sublime / Atom / *

Setup



Vagrant

https://github.com/ciandt-dev/drupal8-vagrant


Acquia Dev Desktop (beta 2):

https://www.acquia.com/products-services/dev-desktop


Ubuntu Juju

Em breve =)


Recomendações




Module Upgrader

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


Change Log

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


Devel

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

+ Recomendações



Pants

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


Examples

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


Leia o Core!

Qual módulo migrar?!


Verifique a Issue Queue

Já existe uma versão em andamento?


Utilidade

Qual a importância de módulo p/ a comunidade?


Vá com calma

módulos pequenos

Familiaridade com o módulo

Uma API de cada vez

Revise sua escolha com cuidado

Sugestão de Passo-a-Passo 


Quebre o módulo em partes

(rotas/config/forms/callbacks)


Faça o D8 enxergar o módulo

*.info.yml + *.module (vazio)


Install e Uninstall

Schema + Config


Siga o fluxo

Permissões / Rotas / Forms (Admin) / Hooks / Twig [...]

Dica


Compatilhe as responsabilidades!


Uma pessoa faz as configurações

Uma pessoal cuida das Rotas

Uma pessoa implementa os Forms e Controllers

Uma pessoa porta os Templates

Rotas & Links


D7

hook_menu()


D8

*.routing.yml

*.links.menu.yml

*.links.task.yml

*.links.action.yml

*.links.contextual.yml

Entidades


D7


$node->field_foo[LANGUAGE_NONE][0]['value']


entity_metadata_wrapper()


  • Node
  • User
  • File

Entidades


D8

$node->title->value;

$node->field_foo->value;


  • Content
    • Node
    • User
    • etc
  • Config
    • Image style
    • View mode
    • View
    • etc

Ger. de Configuração


D7


variable_set() / variable_get()

hook_update_N()


Ctools Exportables + Features

Exportação de config. com Features

Mix entre DB e Código

Ger. de Configuração


D8


$config->get('variable');


Entidades de Config. podem
ser parte das config. do módulo.

Exportáveis:

padrão => yml
active => DB
staging => Código

Outros


D7


Blocos definidos em Hooks

Variáveis (Objetos) globais:

$user, $language

Funções:

t(), l()

Drush:

$ drush cc all

Debug:

dpm()

Outros


D8


Blocos definidos como plugins e com Anntotation

Objetos e Funções acessíveis por Serviços


Drush:

$ drush cr


Debug:

ksm()


Blockers


Function not defined!

Lembre-se dos Change Records!

Métodos dependentes


Mudanças importantes da API

Módulos de exemplo / Core

http://api.drupal.org


Cheque os logs!


Peça ajuda!

Debug


Leia os erros! :D


WSOD

O log do PHP é seu amigo ;)


Comente se for preciso

hook_install() / hook_uninstall()


Limpe o cache!

$ drush cr






Obrigado! :)



Fontes: 

http://drupal.org

https://speakerdeck.com/typhonius/drupal-8-hackathon-primer

HackaTaller - Introdução ao D8

By tallerweb

HackaTaller - Introdução ao D8

Apresentação de abertura do HackaTaller de Drupal 8 na Taller Web Solutions.

  • 506
Loading comments...

More from tallerweb