Desenvolvimento web com Drupal: o CMS e o framework
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Desenvolvimento web com Drupal: o CMS e o framework

on

  • 7,424 views

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

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

Statistics

Views

Total Views
7,424
Views on SlideShare
7,261
Embed Views
163

Actions

Likes
4
Downloads
225
Comments
0

6 Embeds 163

http://eriksencosta.wordpress.com 133
http://www.slideshare.net 23
http://www.linkedin.com 4
http://localhost 1
http://webcache.googleusercontent.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desenvolvimento web com Drupal: o CMS e o framework Presentation Transcript

  • 1. Desenvolvimento web com Drupal: o CMS e o framework Eriksen Costa Paixão eriksencosta@gmail.com Osasco, 29 de novembro de 2008
  • 2. 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 eriksencosta.wordpress.com grandes sistemas voltados a marketing eriksencosta@gmail.com ● Instrutor do curso PHP & www.linkedin.com/in/eriksencosta MySQL Web Developer na 4Linux drupal.org/user/215266
  • 3. O que veremos... ● História sobre o Drupal ● Quem usa ● Por que usam? ● Drupal 6 ● CMS ● Framework ● Novidades do Drupal 7
  • 4. Pode te ajudar a... ● Não reinventar a roda ● Contribuir com o projeto ● Decidir se vai de Drupal, Joomla, Plone...
  • 5. Drupal
  • 6. Drupal: o que é? ● CMS ● Framework ● Open source (GPL) ● Versão estável atual: Drupal 6
  • 7. Drupal: história
  • 8. Drupal: vantagens ● Comunidade ● Documentação ● Funcionalidades ● Extensibilidade ● Seguro ● Escalável ● Internacionalização ● Maduro
  • 9. 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
  • 10. Quem usa?
  • 11. 4Linux - http://www.4linux.com.br
  • 12. Democratas - http://www.democratas.org.br
  • 13. Unicamp - http://www.unicamp.br
  • 14. Disney ABC Family - http://abcfamily.com
  • 15. Anistia Internacional - http://www.amnesty.org
  • 16. FastCompany - http://www.fastcompany.com
  • 17. MTV UK - http://www.mtv.co.uk
  • 18. OnSugar - http://onsugar.com
  • 19. Sony MyPlay - http://myplay.com
  • 20. Warner - http://www.wbr.com
  • 21. Além desses modestos nomes...
  • 22. Mercado
  • 23. Mercado: mundo ● Ecossistema em expansão ● Empresas altamente especializadas ● Projetos grandes
  • 24. 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
  • 25. 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
  • 26. O CMS
  • 27. O CMS
  • 28. O CMS ● Criar diferentes tipos de conteúdo ● Categorizar conteúdo ● Multi-sites ● Temas (layouts) prontos
  • 29. O CMS: plug and play
  • 30. 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 – ...
  • 31. O CMS: drag n' drop
  • 32. O CMS: performance
  • 33. O CMS: performance ● Cache de páginas e blocos – Menos queries ao banco de dados – Reduz a carga no servidor – Tempo de resposta diminui
  • 34. 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!
  • 35. O CMS: performance ● Otimização de CSS: caso 4Linux (D5) ● 21 arquivos CSS no total – 21 requisições HTTP – ~51 KB de CSS
  • 36. 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!
  • 37. O CMS: segurança
  • 38. 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
  • 39. O CMS: internacionalização
  • 40. 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
  • 41. 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
  • 42. O framework
  • 43. O framework
  • 44. O framework: arquitetura
  • 45. O framework: node node title body author created date ...
  • 46. O framework: node node title body author created date ... article poll copyright choices results
  • 47. O framework: API ● API robusta ● Responsável pela extensibilidade ● Módulos podem prover APIs também
  • 48. O framework: hook system $permissions = module_invoke_all(‘perm’); Blog Contact function blog_perm() function contact_perm() { { return array(‘access return array(‘edit contact form’); own blog’); } }
  • 49. O framework: Forms API ● Quem gosta de trabalhar com forms? – Validar – Checar tipo – Condicionais – Segurança... ● Chega de...
  • 50. 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
  • 51. O framewok: Forms API (FAPI)
  • 52. O framework: outras APIs ● Batch ● Database ● Javascript, AJAX, AHAH ● Localization ● Schema ● XML-RPC
  • 53. 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
  • 54. Módulos
  • 55. 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
  • 56. 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
  • 57. 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)
  • 58. Módulos: Webform ● Construtor de formulários – Formulários de contato – Pesquisas – Entrada para outros sistemas (CRM)
  • 59. 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 =)
  • 60. 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
  • 61. Módulos: mais... ● Asset ● CAPTCHA ● Ubercart (e-commerce) ● OG Groups ● SEO Checklist ● XML Sitemaps ● ...
  • 62. Desenvolvimento
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. Desenvolvimento: dicas ● Zen theme ● Não se preocupe em customizar a interface logo cedo
  • 68. 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...
  • 69. 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
  • 70. 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
  • 71. Drupal 7, drupal.org e como contribuir
  • 72. Drupal 7 ● Usabilidade ● Database The Next Generation ● Mais drag and drop ● “Vai ser lançado quando estiver pronto” ● Necessário PHP 5.2+
  • 73. 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
  • 74. Gostou? Contribua! ● Dê suporte – Principalmente no drupal-br.org ● Crie um módulo ● Documente ● Traduza ● Espalhe as boas novas ● Dê palestras ● Abuse e use!
  • 75. Perguntas?
  • 76. 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