desenvolvimento web com drupal: o cms e o framework

97
Desenvolvimento web com Drupal: o CMS e o framework Eriksen Costa Paixão [email protected] Osasco, 29 de novembro de 2008

Upload: eriksen-costa

Post on 03-Jun-2015

4.834 views

Category:

Technology


3 download

DESCRIPTION

Slides da palestra de mesmo nome apresentada na PHP Conference Brasil 2008.

TRANSCRIPT

Page 1: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento web com Drupal: o CMS e o framework

Eriksen Costa Paixã[email protected]

Osasco, 29 de novembro de 2008

Page 2: Desenvolvimento web com Drupal: o CMS e o framework

Eriksen Costa Paixão

● Bacharelando em Análise de Sistemas pela Universidade de Ribeirão Preto (UNAERP)

● Desenvolvedor web

● Programador PHP há 5 anos

● Desenvolvedor Drupal e Symfony

● Atualmente trabalha com grandes sistemas voltados a marketing

● Instrutor do curso PHP & MySQL Web Developer na 4Linux

eriksencosta.wordpress.com

[email protected]

www.linkedin.com/in/eriksencosta

drupal.org/user/215266

Page 3: Desenvolvimento web com Drupal: o CMS e o framework

O que veremos...

● História sobre o Drupal● Quem usa● Por que usam?● Drupal 6● CMS● Framework● Novidades do Drupal 7

Page 4: Desenvolvimento web com Drupal: o CMS e o framework

Pode te ajudar a...

● Não reinventar a roda● Contribuir com o projeto● Decidir se vai de Drupal, Joomla, Plone...

Page 5: Desenvolvimento web com Drupal: o CMS e o framework

Drupal

Page 6: Desenvolvimento web com Drupal: o CMS e o framework

Drupal: o que é?

● CMS● Framework● Open source (GPL)● Versão estável atual: Drupal 6

Page 7: Desenvolvimento web com Drupal: o CMS e o framework
Page 8: Desenvolvimento web com Drupal: o CMS e o framework

Drupal: história

Page 9: Desenvolvimento web com Drupal: o CMS e o framework

Drupal: vantagens

● Comunidade● Documentação● Funcionalidades● Extensibilidade● Seguro● Escalável● Internacionalização● Maduro

Page 10: Desenvolvimento web com Drupal: o CMS e o framework

Drupal: desvantagens

● Curva de aprendizado● Documentação na maior parte em inglês (!?)● Tudo vai para o banco de dados

– Fica difícil manter histórico das configurações

– Implantação de atualizações

Page 11: Desenvolvimento web com Drupal: o CMS e o framework

Quem usa?

Page 12: Desenvolvimento web com Drupal: o CMS e o framework

4Linux - http://www.4linux.com.br

Page 13: Desenvolvimento web com Drupal: o CMS e o framework

Democratas - http://www.democratas.org.br

Page 14: Desenvolvimento web com Drupal: o CMS e o framework

Unicamp - http://www.unicamp.br

Page 15: Desenvolvimento web com Drupal: o CMS e o framework

Disney ABC Family - http://abcfamily.com

Page 16: Desenvolvimento web com Drupal: o CMS e o framework

Anistia Internacional - http://www.amnesty.org

Page 17: Desenvolvimento web com Drupal: o CMS e o framework

FastCompany - http://www.fastcompany.com

Page 18: Desenvolvimento web com Drupal: o CMS e o framework

MTV UK - http://www.mtv.co.uk

Page 19: Desenvolvimento web com Drupal: o CMS e o framework

OnSugar - http://onsugar.com

Page 20: Desenvolvimento web com Drupal: o CMS e o framework

Sony MyPlay - http://myplay.com

Page 21: Desenvolvimento web com Drupal: o CMS e o framework

Warner - http://www.wbr.com

Page 22: Desenvolvimento web com Drupal: o CMS e o framework

Além desses modestos nomes...

Page 23: Desenvolvimento web com Drupal: o CMS e o framework

Mercado

Page 24: Desenvolvimento web com Drupal: o CMS e o framework

Mercado: mundo

● Ecossistema em expansão● Empresas altamente especializadas● Projetos grandes

Page 25: Desenvolvimento web com Drupal: o CMS e o framework

Mercado: mundo

● Drupal como parte integrante do negócio– Acquia.com: suporte comercial (US$ 7 mi em

investimento de risco)

– PopSugar.com: redes sociais (US$ 15 mi)

– NowPublic.com: jornalismo comunitário (US$ 12 mi)

– Etribes.com: rede de blogs

– ParentsClick.com: redes sociais

Page 26: Desenvolvimento web com Drupal: o CMS e o framework

Mercado: Brasil

● Poucos desenvolvedores● 1 empresa especializada (que eu lembre)

– Chuva Inc. (case Unicamp)

● Oportunidade● Free-lancers e empresas

– Software de ótima qualidade para PMGE

– Produtividade

Page 27: Desenvolvimento web com Drupal: o CMS e o framework

O CMS

Page 28: Desenvolvimento web com Drupal: o CMS e o framework

O CMS

Page 29: Desenvolvimento web com Drupal: o CMS e o framework

O CMS

● Criar diferentes tipos de conteúdo● Categorizar conteúdo● Multi-sites● Temas (layouts) prontos

Page 30: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: plug and play

Page 31: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: plug and play

● 2.100+ módulos● Extendem as funcionalidades básicas do core

– Mídia: vídeos, podcasts, galeria de fotos

– Nuvem de tags

– Integração com Google Maps

– Content Relationship Management (CRM)

– Calendário e inscrição de eventos

– ...

Page 32: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: drag n' drop

Page 33: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: performance

Page 34: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: performance

● Cache de páginas e blocos– Menos queries ao banco de dados

– Reduz a carga no servidor

– Tempo de resposta diminui

Page 35: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: performance

● Economia de banda– Compressão de páginas

– Otimização de CSS e JS

– Só é necessário clicar para ativar!

– Carregamento mais rápido nos browsers!

Page 36: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: performance

● Otimização de CSS: caso 4Linux (D5)● 21 arquivos CSS no total

– 21 requisições HTTP

– ~51 KB de CSS

Page 37: Desenvolvimento web com Drupal: o CMS e o framework
Page 38: Desenvolvimento web com Drupal: o CMS e o framework
Page 39: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: performance

● Otimização de CSS e JS: caso 4Linux (D5)● 20 arquivos agregados em 1

– 1 única requisição HTTP

– ~41 KB de CSS

– 24% de economia

– Isso tudo apenas clicando em uma opção!

Page 40: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: segurança

Page 41: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: segurança

● Update status module– Notifica quando novas versões ou correções de

segurança estão disponíveis

● Filtro de conteúdo– Anti-XSS

● Formulários– Anti-CRSF

● Checagem de força de senha

Page 42: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: internacionalização

Page 43: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: internacionalização

● Site em diversos idiomas em poucos cliques● Suporte a idiomas RTL (right to left)● Tradução de toda a interface

– Locale module (core) + i18n (contrib)

– Arquivos .pot ou tradução via interface admin

Page 44: Desenvolvimento web com Drupal: o CMS e o framework

O CMS: internacionalização

● Negociação do idioma do conteúdo e interface– Por prefixo na URL: example.com/pt-br

– Através do subdomínio: pt-br.example.com

– Preferência do usuário

Page 45: Desenvolvimento web com Drupal: o CMS e o framework

O framework

Page 46: Desenvolvimento web com Drupal: o CMS e o framework

O framework

Page 47: Desenvolvimento web com Drupal: o CMS e o framework

O framework: arquitetura

Page 48: Desenvolvimento web com Drupal: o CMS e o framework

O framework: node

nodetitlebodyauthorcreated date...

Page 49: Desenvolvimento web com Drupal: o CMS e o framework

O framework: node

nodetitlebodyauthorcreated date...

articlecopyright

pollchoicesresults

Page 50: Desenvolvimento web com Drupal: o CMS e o framework

O framework: API

● API robusta● Responsável pela extensibilidade● Módulos podem prover APIs também

Page 51: Desenvolvimento web com Drupal: o CMS e o framework

O framework: hook system

BlogBlog ContactContact

function blog_perm() { return array(‘edit own blog’);}

function contact_perm() { return array(‘access contact form’);}

$permissions = module_invoke_all(‘perm’);

Page 52: Desenvolvimento web com Drupal: o CMS e o framework

O framework: Forms API

● Quem gosta de trabalhar com forms?– Validar

– Checar tipo

– Condicionais

– Segurança...

● Chega de...

Page 53: Desenvolvimento web com Drupal: o CMS e o framework
Page 54: Desenvolvimento web com Drupal: o CMS e o framework

O framewok: Forms API (FAPI)

● Simples– Estimula reuso de código

● Funções de validação

– AHAH

– Pré-valida se o conteúdo corresponde ao seu form

– Anti-CRSF

– Formulários em vários passos simples● Repopula sozinho

Page 55: Desenvolvimento web com Drupal: o CMS e o framework

O framewok: Forms API (FAPI)

Page 56: Desenvolvimento web com Drupal: o CMS e o framework

O framework: outras APIs

● Batch● Database● Javascript, AJAX, AHAH● Localization● Schema● XML-RPC

Page 57: Desenvolvimento web com Drupal: o CMS e o framework

O framework: theming

● Camada de apresentação muito flexível● Enjoou da cara do seu site?

– Crie um tema novo e troque na interface admin

– Geralmente não precisa alterar nenhuma outra configuração

● O designer nem precisa entender bem como o Drupal funciona

Page 58: Desenvolvimento web com Drupal: o CMS e o framework

Módulos

Page 59: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: CCK

● Permite estender um tipo de conteúdo adicionando novos campos

● Ex: site de imobiliária, cadastro de node do tipo imóvel:– Quartos

– Banheiro

– Garagem

Page 60: Desenvolvimento web com Drupal: o CMS e o framework
Page 61: Desenvolvimento web com Drupal: o CMS e o framework
Page 62: Desenvolvimento web com Drupal: o CMS e o framework
Page 63: Desenvolvimento web com Drupal: o CMS e o framework
Page 64: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: Views

● Permite criar lista de conteúdo através de uma interface bastante prática

● Possui API própria que permite outros módulos interagirem com o módulo adicionando novas opções para a sua interface

Page 65: Desenvolvimento web com Drupal: o CMS e o framework
Page 66: Desenvolvimento web com Drupal: o CMS e o framework
Page 67: Desenvolvimento web com Drupal: o CMS e o framework
Page 68: Desenvolvimento web com Drupal: o CMS e o framework
Page 69: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: Panels

● Permite a criação de páginas em painéis diferentes com total controle do layout e de conteúdo (nodes, blocks e até views)

Page 70: Desenvolvimento web com Drupal: o CMS e o framework
Page 71: Desenvolvimento web com Drupal: o CMS e o framework
Page 72: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: Webform

● Construtor de formulários– Formulários de contato

– Pesquisas

– Entrada para outros sistemas (CRM)

Page 73: Desenvolvimento web com Drupal: o CMS e o framework
Page 74: Desenvolvimento web com Drupal: o CMS e o framework
Page 75: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: Flashvideo

● Inclui funcionalidade de upload de arquivo de vídeo (MPG, AVI...) para conversão à là YouTube– Requer ffmpeg

– Não vem com player de vídeo● JW FLV Media Player (GPL, € 30 a € 200)● Flowplayer (GPL, US$ 95 ou US$ 355)● OS FLV (GPL)

● Quem precisa do YouTube quando se tem banda =)

Page 76: Desenvolvimento web com Drupal: o CMS e o framework
Page 77: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: ImageCache e imagefield

● Permite a criação de ações que serão realizadas em cima de um upload de imagem– Quantas ações quiser

– Tamanhos diferentes

● Widget CCK de upload de imagens

Page 78: Desenvolvimento web com Drupal: o CMS e o framework
Page 79: Desenvolvimento web com Drupal: o CMS e o framework
Page 80: Desenvolvimento web com Drupal: o CMS e o framework
Page 81: Desenvolvimento web com Drupal: o CMS e o framework

Módulos: mais...

● Asset● CAPTCHA● Ubercart (e-commerce)● OG Groups● SEO Checklist● XML Sitemaps● ...

Page 82: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento

Page 83: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: como é

● Pesquisa de módulos● Boa parte do tempo é gasta com configuração

dos módulos e com o templating● Para sites mais sofisticados, o desenvolvedor

deve entender o funcionamento de parte da API

Page 84: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Use CCK e Views– Ajudam a mudar rapidamente os tipos de conteúdo

– Desenvolvimento ágil

– Prototipação

● Módulos Devel● Aprenda a usar o (jurássico) CVS● Documente seus passos

Page 85: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Instale já em português:– O instalador fornece o link dos pacotes de tradução

e da documentação sobre como fazer

– Pacote de tradução em português em: http://drupal.org/project/pt-br

● Leia alguns cases no drupal.org:– NYObserver, Rake Magazine, IMA, 4Linux

● Peça ajuda– #IRC, fóruns do drupal.org ou drupal-br.org

Page 86: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● O código Drupal é muito limpo e organizado● Consulte a API:

– api.drupal.org

● Convenções de código do PEAR (PHP Extension and Application Repository)

● Seguir as convenções traz benefícios como segurança e melhor portabilidade de código

Page 87: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Zen theme● Não se preocupe em customizar a interface

logo cedo

Page 88: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Aproveite das opções de performance nativas● Frontend

– JS e CSS agregation● Reduz em muitos % o tamanho dos arquivos

– Cache de páginas

– Melhorando isso tudo...● Apache mod_deflate● Proxy reverso (varnish, squid)● Vamos ver...

Page 89: Desenvolvimento web com Drupal: o CMS e o framework
Page 90: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Habilitando o mod_deflate do Apache na 4Linux tivemos:– ~9 KB de CSS

– CSS agregado: 355% de economia

– CSS em arquivos separados: 466% de economia

Page 91: Desenvolvimento web com Drupal: o CMS e o framework

Desenvolvimento: dicas

● Backend– Já é bastante otimizado para ser usado em

qualquer servidor (até nos compartilhados...)

– Desative módulos desnecessários

– Uso intensivo do banco● Muitos módulos● 200+ queries● MySQL query_cache_size● Memcached (e módulo Memcache)

– Memória● APC

Page 92: Desenvolvimento web com Drupal: o CMS e o framework

Drupal 7, drupal.orge como contribuir

Page 93: Desenvolvimento web com Drupal: o CMS e o framework

Drupal 7

● Usabilidade● Database The Next Generation● Mais drag and drop● “Vai ser lançado quando estiver pronto”● Necessário PHP 5.2+

Page 94: Desenvolvimento web com Drupal: o CMS e o framework

Drupal.org

● Processo de redesign aberto– groups.drupal.org/drupalorg-redesign-plan-drupal-

association

● Design bonito● Testes de usabilidade● Páginas com ofertas de trabalho● Interessante de se acompanhar

Page 95: Desenvolvimento web com Drupal: o CMS e o framework

Gostou? Contribua!

● Dê suporte– Principalmente no drupal-br.org

● Crie um módulo● Documente● Traduza● Espalhe as boas novas● Dê palestras● Abuse e use!

Page 96: Desenvolvimento web com Drupal: o CMS e o framework

Perguntas?

Page 97: Desenvolvimento web com Drupal: o CMS e o framework

Obrigado!

Fontes, links e download da palestra disponíveis em:http://tinyurl.com/ecppcb2008

Creative Atribuição-Compartilhamento pela mesma Licença 2.5 Brasil Commons