PHP Turbinado com CodeIgniter - Conisli 2011

2,196
-1

Published on

Slides que usei em minha palestra no Conisli 2011 sobre PHP e CodeIgniter

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,196
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
56
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PHP Turbinado com CodeIgniter - Conisli 2011

  1. 1. PHP Turbinado com CodeIgniter Conisli 2011 05/11/2011 Evaldo Junior (InFog)
  2. 2. Licença desta apresentação ● CC BY 3.0 – Use – Compartilhe – Modifique – Distribua modificações ● Com duas condições: – Mantenha os créditos do autor – Mantenha a mesma licença
  3. 3. Evaldo Junior (InFog)● Tecnólogo em Processamento de Dados – FATEC● Pós – Gestão Estratégica de TI – Unimonte● Empreendedor – CaSoft Tecnologia (http://casoft.info)● Professor – Unimonte● GNU/Linux – 6 anos● Desenvolvedor PHP – 5 anos● Desenvolvedor CodeIgniter – 2 anos● GCC-SD
  4. 4. Sobre esta apresentação ● História do PHP ● Pontos fortes do PHP ● Pontos fracos do PHP ● O que é um framework? ● CodeIgniter ● Ferramentas do CodeIgniter ● Turbinando seus aplicativos
  5. 5. História do PHPQuando não conhecemos a história, estamos fadados à repeti-la.
  6. 6. História do PHP● Nasceu em 1994● Criada por Rasmus Lerdorf – Páginas dinâmicas, scripts● Era chamada de PHP/FI – Personal Home Pages/Form Interpreter● Em 1995 se tornou Software Livre● Escrito em C
  7. 7. Um pouco mais de história ● Cresceu muito com a Internet ● No fim de 1998: – PHP: HyperText Preprocessor – 10% dos domínios da época – Começou a ser reescrita por Zeev e Andi (Zend Engine) ● Em 2000: – PHP4 – CLI, Vários servidores HTTP – 20% dos domínios
  8. 8. Só mais um pouco de história ● Em 2004: – PHP5 – OO ● 2009: – PHP 5.3 • Namespaces
  9. 9. O PHP é aberto● O PHP é Software Livre● Muitos contribuem, no mundo todo! – Isso é ótimo! – Mas isso é ruim =(● Muitas funções na biblioteca padrão. – Para quase qualquer necessidade. – Falta padronização
  10. 10. PHP é fácil● Simples de aprender● Uma faca de dois gumes... – 08:00h: • Comecei a aprender PHP! Que legal! – 11:15h: • Ok, já sei PHP. – 15:37h: • Fechei meu primeiro “freela” com PHP =D
  11. 11. WEB + PHP = Fácil ● Fácil, fácil, fácil! ● PHP nasceu para a web; ● Não é necessário muita coisa: – HTTP (Apache) – PHP – SGBD (MySQL, opcional) • Basta escrever, colocar na raiz do apache e tadá!
  12. 12. Espanto.Já sou um hacker PHP!
  13. 13. Mas com o tempo. ● Os softwares começam a crescer sem estrutura; ● Começa a repetição de rotinas; ● A mistura de PHP, HTML, JavaScript e CSS fica mais complexa; ● Erros aparecem, e é difícil encontrá-los ● Código espaguete
  14. 14. Fica impossível de manter!
  15. 15. Ok, hora de estudar ● Problemas mais complexos podem exigir soluções mais SIMPLES! ● Padrões de projeto. – MVC ● Guia de estilos. ● Estrutura. ● Classes e componentes. ● Padrões.
  16. 16. E se.O cara foi embora enão conhecemos a ● O trabalho aumentar? estrutura que elemesmo inventou... ● Entrar alguém na equipe? O que faremos? ● Passar o projeto adiante? – Documentação – Padronização – Reconhecimento
  17. 17. Alguma solução? Ouvi dizer que um framework ajuda bastantena padronização e já tem muitas ferramentas prontas. Também já ouvi algo sobre isso. Mas existem tantos frameworks PHP por aí...
  18. 18. Framework?● Seguem padrões● (Em geral) são bem documentados● Muitos desenvolvedores os conhecem● Existem livros sobre alguns deles● Já incluem várias soluções para os problemas mais comuns● Ajudam a abstrair algumas partes do projeto.
  19. 19. CodeIgniter● Ellislab, Inc.● Base do Expression Engine;● Código aberto; – Um toolkit para desenvolver aplicações web de forma muito mais rápida do que escrever código do zero.● http://codeigniter.com
  20. 20. CodeIgniter● MVC;● Simples;● Rápido;● Flexível;● URLs amigáveis;● Bom para iniciantes em frameworks; – E é facilmente adaptável para os experientes.● Licença livre;● Documentação muito completa (Sério).
  21. 21. Uma pausa para o MVC ● Model, View e Controller;Pode serqualquerSGDB Dispatcher e Routes Não fazem parte do MVC
  22. 22. CodeIgniter● Recursos● Arquitetura (metas)● Fluxo da Aplicação● URLs; – Controllers – Métodos – Parâmetros● Helpers e Libraries● Abstração do acesso ao banco
  23. 23. Recursos● Model-View-Controller ● Paginação● Extremamente leve ● Cache● Classe para banco de ● Log de erros dados com suporte a vários SGBDs ● Sistema de templates● Validação de forms ● Biblioteca XML-RPC● Filtro contra XSS e ● Classe para Testes CSRF Unitários● Gestão de Sessões ● URLs amigáveis● Classe para envio de e- ● Sistema de rotas mails (formatação html, flexíveis anexos, etc) ● Hooks e extensões de● Manipulação de imagens classes● Envio de arquivos ● Muitos, muitos helpers
  24. 24. Arquitetura (metas)● Instanciação Dinâmica – Vai usar? Carrega! – Não vai? Nem toca!● Acoplamento Fraco – As partes devem ser independentes, ou o mais próximo disso o possível.● Singularidade de Componentes – Cada componente faz a sua parte e faz o melhor que pode. – Evita ao máximo repetir funcionalidades
  25. 25. Fluxo de uma aplicação
  26. 26. Um detalhe importante Chinês
  27. 27. Mas como ele facilita as coisas? ● Padronização! ● Documentação ● Organização – Onde alterar? – Onde adicionar? – Onde procurar os problemas?
  28. 28. URLs do CI● www.meusite.com/produtos/destaques/mobile ROXO: Um controller (uma classe) VERDE: Método AZUL: Parâmetros para o método
  29. 29. Helpers● São os “ajudantes”● São basicamente um conjunto de funções● Os arquivos ficam em “system/helpers”.● Existem helpers para muitas funções: – Captcha, datas, e-mail, arquivos, forms, html, segurança, URLs...
  30. 30. Libraries● São classes● Também são ajudantes● Em geral reúnem funcionalidades que se encaixam melhor na OO e não como funções separadas.● Os arquivos ficam em “system/libraries”
  31. 31. Sparks!● Sistema de módulos/pacotes para o CodeIgniter● Integração com diversas bibliotecas – Doctrine, oAuth, MongoDB● Fica separado da aplicação
  32. 32. Qer aprender mais? ● Site oficial: – http://codeigniter.com ● Comunidades ● Livros ● Cursos – Turbine-se com CodeIgniter – turbinesecomcodeigniter.com.br
  33. 33. Perguntas?
  34. 34. Obrigado! Meus contatos ● @InFog9 ● junior@casoft.info ● infog.casoft.info Recomendo: ● @casoft ● @turbinese
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×