SlideShare uma empresa Scribd logo
PHP Turbinado com CodeIgniter




           Conisli 2011
           05/11/2011


          Evaldo Junior
             (InFog)
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
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
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
História do PHP




Quando 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
       – Personal Home Pages/Form
          Interpreter
●   Em 1995 se tornou Software Livre
●   Escrito em C
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
Só mais um pouco de história
       ●   Em 2004:
             – PHP5
             – OO
       ●   2009:
             – PHP 5.3
                    • Namespaces
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
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
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á!
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 mistura de PHP, HTML,
      JavaScript e CSS fica mais
      complexa;
  ●   Erros aparecem, e é difícil
      encontrá-los
  ●   Código espaguete
Fica impossível de manter!
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.
E se.
O cara foi embora e
não conhecemos a
                          ●   O trabalho aumentar?
 estrutura que ele
mesmo inventou...
                          ●   Entrar alguém na
                              equipe?
 O que faremos?
                          ●   Passar o projeto
                              adiante?
                                 – Documentação
                                 – Padronização
                                 – Reconhecimento
Alguma solução?

 Ouvi dizer que
 um framework
 ajuda bastante
na padronização
 e já tem muitas
   ferramentas
     prontas.


                                      Também já ouvi
                                      algo sobre isso.

                                     Mas existem tantos
                                      frameworks PHP
                                          por aí...
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.
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
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).
Uma pausa para o MVC

  ●   Model, View e Controller;
Pode ser
qualquer
SGDB




      Dispatcher e Routes
      Não fazem parte do MVC
CodeIgniter

●   Recursos
●   Arquitetura (metas)
●   Fluxo da Aplicação
●   URLs;
       – Controllers
       – Métodos
       – Parâmetros
●   Helpers e Libraries
●   Abstração do acesso ao banco
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
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
Fluxo de uma aplicação
Um detalhe importante



                        Chinês
Mas como ele facilita as coisas?
             ●   Padronização!
             ●   Documentação
             ●   Organização
                    – Onde alterar?
                    – Onde adicionar?
                    – Onde procurar os
                       problemas?
URLs do CI
●   www.meusite.com/produtos/destaques/mobile

        ROXO: Um controller (uma classe)


        VERDE: Método


        AZUL: Parâmetros para o método
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...
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”
Sparks!

●   Sistema de módulos/pacotes para o
    CodeIgniter
●   Integração com diversas bibliotecas
       – Doctrine, oAuth, MongoDB
●   Fica separado da aplicação
Qer aprender mais?
  ●   Site oficial:
         – http://codeigniter.com
  ●   Comunidades
  ●   Livros
  ●   Cursos
         – Turbine-se com CodeIgniter
         – turbinesecomcodeigniter.com.br
Perguntas?
Obrigado!

        Meus contatos
    ●   @InFog9
    ●   junior@casoft.info
    ●   infog.casoft.info



        Recomendo:
    ●   @casoft
    ●   @turbinese

Mais conteúdo relacionado

ODP
Introdução ao framework CodeIgniter
PPTX
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
PDF
Desenvolvimento web com CodeIgniter
PPTX
PHP 10 CodeIgniter
PDF
Tutorial codeigniter
PDF
Como escolher o Framework Java para web?
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PDF
Web Scale Data Management
Introdução ao framework CodeIgniter
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Desenvolvimento web com CodeIgniter
PHP 10 CodeIgniter
Tutorial codeigniter
Como escolher o Framework Java para web?
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Web Scale Data Management

Mais procurados (20)

PDF
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
KEY
Desenvolvendo Aplicações com Zend Framework
ODP
Entendendo Framework Web com Python
PDF
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
PPTX
Unit Test JavaScript
PDF
NoSQL com Zend Framework 2
ODP
JSF e outras tecnologias Java Web - IMES.java
PDF
Analise frameworks php
PDF
Construindo aplicações web java com netbeans
PDF
Começando com Zend Framework 2
PPTX
Frameworks em Java
PDF
Apostila Java Web com JSF, JPA e Primefaces
PPT
Desenvolvimento web em java com JSP e Servlets
PDF
Java Web Fácil com VRaptor
KEY
Django - Desenvolvimento web ágil com Python
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
PDF
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ODP
Arquitetura MVC, JavaBeans e DAO
PDF
Desenvolvimento Web com CakePHP
PPT
MVC & Zend Framework
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Desenvolvendo Aplicações com Zend Framework
Entendendo Framework Web com Python
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Unit Test JavaScript
NoSQL com Zend Framework 2
JSF e outras tecnologias Java Web - IMES.java
Analise frameworks php
Construindo aplicações web java com netbeans
Começando com Zend Framework 2
Frameworks em Java
Apostila Java Web com JSF, JPA e Primefaces
Desenvolvimento web em java com JSP e Servlets
Java Web Fácil com VRaptor
Django - Desenvolvimento web ágil com Python
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
Arquitetura MVC, JavaBeans e DAO
Desenvolvimento Web com CakePHP
MVC & Zend Framework
Anúncio

Semelhante a PHP Turbinado com CodeIgniter - Conisli 2011 (20)

PDF
O que move a web atualmente?
PDF
Slide Aula - Curso CakePHP
ODP
Desenvolvimento web e PHP
PDF
Dicas para sua carreira de Desenvolvedor PHP
PDF
Qualidade em projetos PHP - SoLiSC 2011
PDF
Qualidade em projetos PHP - PHPSC Conf 2011
PDF
Palestra Zend Framework na Campus Party 2011
PDF
Node.JS - Workshop do básico ao avançado
PDF
Carreira de Desenvolvimento
PDF
PHP 5 de Forma Correta e Segura
PDF
Frameworks PHP
PDF
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
PDF
Deixando de ser moleque com PHP
PDF
Oficina de PHP - Software Freedom Day Luziânia 2013
PDF
Desenvolvimento de aplicações embarcadas utilizando Python
PDF
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
PDF
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
PDF
Python mudando o modo de desenvolver para a internet
PPSX
Web tools pt-br
PDF
P01 - Como ser um desenvolvedor melhor
O que move a web atualmente?
Slide Aula - Curso CakePHP
Desenvolvimento web e PHP
Dicas para sua carreira de Desenvolvedor PHP
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - PHPSC Conf 2011
Palestra Zend Framework na Campus Party 2011
Node.JS - Workshop do básico ao avançado
Carreira de Desenvolvimento
PHP 5 de Forma Correta e Segura
Frameworks PHP
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
Deixando de ser moleque com PHP
Oficina de PHP - Software Freedom Day Luziânia 2013
Desenvolvimento de aplicações embarcadas utilizando Python
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a internet
Web tools pt-br
P01 - Como ser um desenvolvedor melhor
Anúncio

Mais de Evaldo Junior (10)

PDF
Dafiti Tech Conference - PHP Levado a Sério
PDF
Lidando com Código Duplicado - PHP Conference Brasil 2013
PDF
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
PDF
Lidando com Código Duplicado - DevInSantos 2013
PDF
Ambiente livre para desenvolvimento web
PDF
Evolucao php2
PDF
A Evolução do PHP - 4º Dev In Santos
PDF
Python para devs
PDF
Sustentabilidade de Projetos Livres
PDF
Controle de Versões com Git
Dafiti Tech Conference - PHP Levado a Sério
Lidando com Código Duplicado - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
Lidando com Código Duplicado - DevInSantos 2013
Ambiente livre para desenvolvimento web
Evolucao php2
A Evolução do PHP - 4º Dev In Santos
Python para devs
Sustentabilidade de Projetos Livres
Controle de Versões com Git

PHP Turbinado com CodeIgniter - Conisli 2011

  • 1. PHP Turbinado com CodeIgniter Conisli 2011 05/11/2011 Evaldo Junior (InFog)
  • 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. 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. 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. História do PHP Quando não conhecemos a história, estamos fadados à repeti-la.
  • 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. 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. Só mais um pouco de história ● Em 2004: – PHP5 – OO ● 2009: – PHP 5.3 • Namespaces
  • 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. 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. 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. Espanto. Já sou um hacker PHP!
  • 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
  • 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. E se. O cara foi embora e não conhecemos a ● O trabalho aumentar? estrutura que ele mesmo inventou... ● Entrar alguém na equipe? O que faremos? ● Passar o projeto adiante? – Documentação – Padronização – Reconhecimento
  • 17. Alguma solução? Ouvi dizer que um framework ajuda bastante na padronização e já tem muitas ferramentas prontas. Também já ouvi algo sobre isso. Mas existem tantos frameworks PHP por aí...
  • 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. 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. 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. Uma pausa para o MVC ● Model, View e Controller; Pode ser qualquer SGDB Dispatcher e Routes Não fazem parte do MVC
  • 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. 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. 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. Fluxo de uma aplicação
  • 27. Mas como ele facilita as coisas? ● Padronização! ● Documentação ● Organização – Onde alterar? – Onde adicionar? – Onde procurar os problemas?
  • 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. 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. 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. Sparks! ● Sistema de módulos/pacotes para o CodeIgniter ● Integração com diversas bibliotecas – Doctrine, oAuth, MongoDB ● Fica separado da aplicação
  • 32. Qer aprender mais? ● Site oficial: – http://codeigniter.com ● Comunidades ● Livros ● Cursos – Turbine-se com CodeIgniter – turbinesecomcodeigniter.com.br
  • 34. Obrigado! Meus contatos ● @InFog9 ● [email protected] ● infog.casoft.info Recomendo: ● @casoft ● @turbinese