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

Desenvolvimento web com Drupal: o CMS e o framework

Jun 03, 2015

Download

Technology

Eriksen Costa

Slides da palestra de mesmo nome apresentada na PHP Conference Brasil 2008.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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