desenvolvimento web com drupal: o cms e o framework

Post on 03-Jun-2015

4.834 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Desenvolvimento web com Drupal: o CMS e o framework

Eriksen Costa Paixãoeriksencosta@gmail.com

Osasco, 29 de novembro de 2008

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

eriksencosta@gmail.com

www.linkedin.com/in/eriksencosta

drupal.org/user/215266

O que veremos...

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

Pode te ajudar a...

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

Drupal

Drupal: o que é?

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

Drupal: história

Drupal: vantagens

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

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

Quem usa?

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

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

Unicamp - http://www.unicamp.br

Disney ABC Family - http://abcfamily.com

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

FastCompany - http://www.fastcompany.com

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

OnSugar - http://onsugar.com

Sony MyPlay - http://myplay.com

Warner - http://www.wbr.com

Além desses modestos nomes...

Mercado

Mercado: mundo

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

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

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

O CMS

O CMS

O CMS

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

O CMS: plug and play

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

– ...

O CMS: drag n' drop

O CMS: performance

O CMS: performance

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

– Reduz a carga no servidor

– Tempo de resposta diminui

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!

O CMS: performance

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

– 21 requisições HTTP

– ~51 KB de CSS

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!

O CMS: segurança

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

O CMS: internacionalização

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

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

O framework

O framework

O framework: arquitetura

O framework: node

nodetitlebodyauthorcreated date...

O framework: node

nodetitlebodyauthorcreated date...

articlecopyright

pollchoicesresults

O framework: API

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

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’);

O framework: Forms API

● Quem gosta de trabalhar com forms?– Validar

– Checar tipo

– Condicionais

– Segurança...

● Chega de...

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

O framewok: Forms API (FAPI)

O framework: outras APIs

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

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

Módulos

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

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

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)

Módulos: Webform

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

– Pesquisas

– Entrada para outros sistemas (CRM)

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 =)

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

Módulos: mais...

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

Desenvolvimento

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

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

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

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

Desenvolvimento: dicas

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

logo cedo

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

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

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

Drupal 7, drupal.orge como contribuir

Drupal 7

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

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

Gostou? Contribua!

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

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

Perguntas?

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

top related