Drupal 4 Dev: aprendendo Drupal do ponto de vista de desenvolvedores
-
Upload
pedro-rocha -
Category
Technology
-
view
9.771 -
download
0
description
Transcript of Drupal 4 Dev: aprendendo Drupal do ponto de vista de desenvolvedores
Drupal 4 Dev Aprendendo Drupal do ponto de vista de desenvolvedores
Pedro Rocha / SingleView
Consultor em Tecnologia da Informação e Inteligência de Marketing
@pedrogomesrocha
Rio de Janeiro, 10 de Novembro de 2012
Sobre o que vamos falar
1. O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
2. Estrutura do Drupal
3. Menu System
4. PHPTemplate
5. Form API
6. Versionamento de código
7. Principais módulos estruturais
8. Drupal para projetos Corporativos
9. Potenciais como aplicativo: Distros
10. Futuro: Drupal 8
Quem sou eu
• Desde 2001 ligado a desenvolvimento web e novas tecnologias
• Atuei com webdesign, administração e otimização de servidores, programação
em Java e PHP, gerenciamento de projetos e atualmente como consultor
• Atuante na comunidade internacional de Drupal desde 2007
• Após usar diversas ferramentas como Wordpress, Joomla, Liferay, Moodle,
CakePHP, Code Igniter, JSF, J2EE, enxerguei um alto potencial no Drupal e o
defini como foco principal de estudos e projetos
• Mantenho módulos do Drupal, colaboro com patches, auxilio com dicas no
meu blog e na lista de discussão da comunidade brasileira de Drupal, além de
apoiar comunidades open source em seus eventos
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
Pode ser chocante para muitos, mas o Drupal não é uma linguagem de
programação, nem um framework de código!
Ou seja, não faz sentido algum querer compará-lo com:
• Symfony, Cake PHP, Code Igniter, etc
• Rails, Ruby
• JSF / Java
• Web2py / Python
e tantas outras linguagens e frameworks por ai...
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
Se quisermos comparar o Drupal com algum outro projeto da mesma “categoria”, talvez devamos olhar para:
Isso porque o Drupal é uma plataforma, também chamado de CMS. O problema com CMS é ser muito vago, conseguindo a proeza de juntar no mesmo saco projetos extremamente distintos, como os 4 exemplos acima.
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
• O Drupal não é OO (orientado a objetos)
• Usa PHP 5 ?
• Seu código é ruim
• Não utiliza MVC
• Possui baixa performance e não é escalável
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
Comunidade
2 - Estrutura do Drupal
• Módulos
• Variáveis de sistema
• Paginas
• Blocos
• Entity & Entity Types (User, Node, Comment, Product, Contacts, etc)
• Fields
• Displays
• Hooks (convenções)
2 - Estrutura do Drupal – Módulos & Variáveis de sistema
Em relação à arquitetura em que o Drupal foi construído, ao longo dos
seus 10 anos de vida, não há como fugir da analogia a peças de Lego ou
de um quebra-cabeça.
No entanto, é mais interessante ainda,
Pois o sistema é completo em si,
não dependendo de outras peças,
mas crescendo enormemente com
cada nova peça que surge.
2 - Estrutura do Drupal – Paginas & Blocos
Cada página que o Drupal retorna é
composta por uma série de blocos
de informação, ou widgets, que
podem vir de diversos módulos
distintos, ou mesmo em combinação,
que pode ser igual para todos os
usuários ou ser contextualizada de
acordo com cada usuário que acessa
a página.
2 - Estrutura do Drupal – Entity & Fields
• API Orientada a Objetos para servir de “Entidade base” de onde as
demais deverão extender, através dos Entity Types
• Entity Types(User, Node, Comment, Product, Contacts, etc)
• As Entities podem ser customizadas via interface, adicionando e
removendo atributos a essa Entity, através dos Fields
• Os Fields se baseiam na Field API, que é uma API altamente robusta e
que, partindo do conceito básico de “campo de formulário”, é
extendida através de dezenas de módulos, com campos para arquivos
de Media, Upload de arquivos em massa, entre diversos outros tipos
de campo.
2 - Estrutura do Drupal – Entity & Fields
2 - Estrutura do Drupal – Displays
2 - Estrutura do Drupal – Displays
Desde o ínício, o Drupal é preparado para que o conteúdo possa adotar
formas diversas de apresentação, ou seja, o mesmo cadastro pode estar em
uma lista, em uma página específica dele, em um bloco, etc, com uma grande
facilidade nessa gestão de diferentes Displays.
Esse conceito evoluiu muito e hoje vemos projetos em que a mesma
instalação do Drupal responde por alimentar o site, um aplicativo mobile(via
JSON, por exemplo), uma interface em Flash, ou mesmo através de XML.
E não esqueçamos que o Drupal 7 foi a primeira plataforma a nativamente
suportar a exportação de seus dados através de RDF, um padrão
fundamental para o próximo passo da internet: a web semântica.
2 - Estrutura do Drupal – Hooks
“Plugável” é o termo que melhor define a arquitetura do Drupal, aonde
cada módulo pode criar “hooks”(ganchos), aonde outros módulos podem
se plugar, interagindo diretamente, através dessa interface.
3 - Menu System
O Drupal se baseia nas URLs para definir como tratar uma requisição,
possuindo um sistema interno chamado “Menu System”, que é altamente
poderoso e flexível, agindo como “Page Controller” e tratando de
questões como segurança e acesso, entre outras.
Ex: “node/456/edit/registration”
• node
• ID do node
• edit
• registration
4 - PHP Template
Uma parte fundamental do Drupal é seu sistema de templates, o PHP
Template, responsável por uma enorme flexibilidade, aonde todo output
gerado pelo sistema é possível de ser interceptado e sobrescrito, aonde
incrementando ou removendo partes, podemos potencializar seus
resultados ou habilitar o sistema a novos casos de uso.
<?php
function theme_pagina_noticias() {...}
pagina-noticias.tpl.php
5 - Form API
Se tem uma coisa fácil e fantástica no Drupal é a forma como trabalha
com formulários, a chamada “Form API”, através da qual podemos criar
formulários com arrays() como:
$form[‘mensagem_ao_usuario'] = array( '#type' => 'textarea', '#title' => ‘Mensagem que deseja enviar ao usuário', '#required' => TRUE, );
Além de contarmos com mecanismos de validação, integração com AJAX,
entre inúmeras outras ferramentas para o tratamento de dados que são
nativas do Drupal
6 - Versionamento de código
Para trabalhar com versionamento de código, a saída encontrada pela
comunidade Drupal foi criar módulos que ajudam a exportar as
configurações criadas via interface, gerando código que gerencia a
sincronização entre o que está configurado na base de dados e o que está
definido no código do módulo.
Os principais módulos com esse objetivo são:
• Features
• Strongarm
• CTools Exportables
7 – Alguns dos principais módulos estruturais
A arquitetura do Drupal, altamente modular e plugável permite o
surgimento de módulos que potencializam outros módulos, e assim por
diante. Alguns módulos que elevam ainda mais as possibilidades são:
• Views
• Context
• Rules
• Panels
e estou cometendo uma injustiça enorme ao citar somente 4, pois
realmente existem muitos módulos com altíssimo potencial para elevar o
Drupal em determinados casos de uso
7 – Alguns dos principais módulos estruturais - Views
7 – Alguns dos principais módulos estruturais – Panels
8 - Drupal para projetos Corporativos
Já foi a época em que o Drupal vivia somente de interface gráfica e
processos manuais, algo inimaginável em grandes projetos corporativos,
que exigem processos como Integração Contínua, testes automatizados,
entre outros. Para isso, algumas ferramentas se tornaram muito
importantes no contexto de Drupal:
• Drush
• Simpletest
• Jenkins
• Drush Make
• etc
8 - Drupal para projetos Corporativos - Drush
8 - Drupal para projetos Corporativos - Simpletest
9 – Potenciais como aplicativo: Distros
10 – Futuro: Drupal 8
Drupal 4 Dev – considerações finais
Mais do que um CMS para criar websites, o Drupal é hoje uma plataforma
adequada aos mais diversos tipos de projetos, com uma grande
flexibilidade e capacidade de rápida adaptação a mudanças.
Com um foco muito forte no reaproveitamento de partes de projetos, a
colaboração dentro da comunidade gera muitos retornos para todos os
envolvidos, cada vez com ferramentas mais e mais sofisticadas, todas
abertas, ao alcance de um click.
Para melhorar, só faltam mais profissionais investindo nessa plataforma!
Acesse http://drupal.org e inicie sua jornada!