PHP Turbinado com CodeIgniter           Conisli 2011           05/11/2011          Evaldo Junior             (InFog)
Licença desta apresentação             ●   CC BY 3.0                   – Use                   – Compartilhe              ...
Evaldo Junior (InFog)●   Tecnólogo em Processamento de Dados       – FATEC●   Pós – Gestão Estratégica de TI       – Unimo...
Sobre esta apresentação    ●   História do PHP    ●   Pontos fortes do PHP    ●   Pontos fracos do PHP    ●   O que é um f...
História do PHPQuando não conhecemos a história,   estamos fadados à repeti-la.
História do PHP●   Nasceu em 1994●   Criada por Rasmus Lerdorf       – Páginas dinâmicas, scripts●   Era chamada de PHP/FI...
Um pouco mais de história     ●   Cresceu muito com a Internet     ●   No fim de 1998:            – PHP: HyperText Preproc...
Só mais um pouco de história       ●   Em 2004:             – PHP5             – OO       ●   2009:             – PHP 5.3 ...
O PHP é aberto●   O PHP é Software Livre●   Muitos contribuem, no mundo    todo!       – Isso é ótimo!       – Mas isso é ...
PHP é fácil●   Simples de aprender●   Uma faca de dois gumes...       – 08:00h:             • Comecei a aprender PHP! Que ...
WEB + PHP = Fácil  ●   Fácil, fácil, fácil!  ●   PHP nasceu para a web;  ●   Não é necessário muita coisa:          – HTTP...
Espanto.Já sou um hacker PHP!
Mas com o tempo.  ●   Os softwares começam a crescer      sem estrutura;  ●   Começa a repetição de rotinas;  ●   A mistur...
Fica impossível de manter!
Ok, hora de estudar        ●   Problemas mais complexos            podem exigir soluções mais            SIMPLES!        ●...
E se.O cara foi embora enão conhecemos a                          ●   O trabalho aumentar? estrutura que elemesmo inventou...
Alguma solução? Ouvi dizer que um framework ajuda bastantena padronização e já tem muitas   ferramentas     prontas.      ...
Framework?●   Seguem padrões●   (Em geral) são bem    documentados●   Muitos desenvolvedores os    conhecem●   Existem liv...
CodeIgniter●   Ellislab, Inc.●   Base do Expression Engine;●   Código aberto;       – Um toolkit para desenvolver aplicaçõ...
CodeIgniter●   MVC;●   Simples;●   Rápido;●   Flexível;●   URLs amigáveis;●   Bom para iniciantes em frameworks;       – E...
Uma pausa para o MVC  ●   Model, View e Controller;Pode serqualquerSGDB      Dispatcher e Routes      Não fazem parte do MVC
CodeIgniter●   Recursos●   Arquitetura (metas)●   Fluxo da Aplicação●   URLs;       – Controllers       – Métodos       – ...
Recursos●   Model-View-Controller     ●   Paginação●   Extremamente leve         ●   Cache●   Classe para banco de      ● ...
Arquitetura (metas)●   Instanciação Dinâmica       – Vai usar? Carrega!       – Não vai? Nem toca!●   Acoplamento Fraco   ...
Fluxo de uma aplicação
Um detalhe importante                        Chinês
Mas como ele facilita as coisas?             ●   Padronização!             ●   Documentação             ●   Organização   ...
URLs do CI●   www.meusite.com/produtos/destaques/mobile        ROXO: Um controller (uma classe)        VERDE: Método      ...
Helpers●   São os “ajudantes”●   São basicamente um conjunto de    funções●   Os arquivos ficam em    “system/helpers”.●  ...
Libraries●   São classes●   Também são ajudantes●   Em geral reúnem funcionalidades que se    encaixam melhor na OO e não ...
Sparks!●   Sistema de módulos/pacotes para o    CodeIgniter●   Integração com diversas bibliotecas       – Doctrine, oAuth...
Qer aprender mais?  ●   Site oficial:         – http://codeigniter.com  ●   Comunidades  ●   Livros  ●   Cursos         – ...
Perguntas?
Obrigado!        Meus contatos    ●   @InFog9    ●   junior@casoft.info    ●   infog.casoft.info        Recomendo:    ●   ...
Próximos SlideShares
Carregando em…5
×

PHP Turbinado com CodeIgniter - Conisli 2011

2.480 visualizações

Publicada em

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

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.480
No SlideShare
0
A partir de incorporações
0
Número de incorporações
34
Ações
Compartilhamentos
0
Downloads
62
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×