Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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:    ●   ...
Upcoming SlideShare
Loading in …5
×

PHP Turbinado com CodeIgniter - Conisli 2011

2,527 views

Published on

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

  • Be the first to comment

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

×