gerenciamento de configuração com features e drush


o que são features


Uma feature é uma coleção de dados do Drupal que satisfaz um caso de uso. Essa é a intenção. Na prática, features é isso e também o melhor métodode exportar e gerenciar e distribuir configurações de uma instalação de Drupal.

do banco ao código



Quando uma feature é criada, configurações que normalmente existem somente no banco passam para o código.




baseada em componentes


  • Componentes tem tipos
  • Cada componente é um "exportável"



o que é drush


O melhor amigo do desenvolvedor e Drupal, drush é um command line tool para o Drupal, que permite fazer muito daquilo que é feito pela interface, por linha de comando.

criando uma feature


  • Pela Interface
  • Com Drush

instalando uma feature

analisando diferenças entre o estado da feature e o estado ativo



  • Diff Module

recriando uma feature



  • Pela interface
  • Com Drush

Exportando variáveis de configuração com strongarm


 Módulo Strongarm fornece um meio de exportar variáveis persistentes do Drupal core e COntrib módule em Features

exportando entidades


Módulo uuid fornece um identificador único universal para qualquer entidade.

Módulo UUID Features integra exporta entidades com features.


  • File fields nao sao exportáveis e geram erros
  • Features fica overriden a todo momento

helper function e exports


  • Exporta entidade com uuid features
  • Remova campos de referencia
  • Remova campots de arquivo
  • Coloque em exports/[node-type].inc
  • implement hook_update_N, passando modulo e entity type



exportando papéis e permissões




  • Roles e Permissions são dois componentes padrões de Features


analisando o código de uma feature



  • .info file
  • hooks
  • componentes
  • dependencias

avaliando ""exportabilidade"" de um módulo


  • CTools
  • Feature integration on issue queue
  • Strongarm & Variables
  • FIeld  & Bundle  settings

gerenciando features em times


  • As vezes, sobrescrevemos ou perdemos configuração quando trabalhando em times
  • utilize git diff pré commit de alterações em features
  • utilize git diiff pós pull de alterações em features
  • sincronize trabalho em features com demais membros do time

resolvendo conflitos entre features


Conflitos ocorrem quando duas ou mais features exportam o mesmo componente.

Resolução consite na separação do componente comum em uma terceira feature, qual se torna uma dependencia das atuais.


feature como ferramenta para desenvolvedores



https://github.com/Lullabot/lbdev/tree/master

Features

By Vinicius Freitas

Features

  • 861