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
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 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.
- 625