php turbinado com codeigniter - conisli 2011

34
PHP Turbinado com CodeIgniter Conisli 2011 05/11/2011 Evaldo Junior (InFog)

Upload: evaldo-junior

Post on 27-May-2015

2.088 views

Category:

Documents


6 download

DESCRIPTION

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

TRANSCRIPT

Page 1: PHP Turbinado com CodeIgniter - Conisli 2011

PHP Turbinado com CodeIgniter

Conisli 2011

05/11/2011

Evaldo Junior

(InFog)

Page 2: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 3: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 4: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 5: PHP Turbinado com CodeIgniter - Conisli 2011

História do PHP

Quando não conhecemos a história,estamos fadados à repeti-la.

Page 6: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 7: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 8: PHP Turbinado com CodeIgniter - Conisli 2011

Só mais um pouco de história

● Em 2004:

– PHP5

– OO

● 2009:

– PHP 5.3

• Namespaces

Page 9: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 10: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 11: PHP Turbinado com CodeIgniter - Conisli 2011

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á!

Page 12: PHP Turbinado com CodeIgniter - Conisli 2011

Espanto.

Já sou um hacker PHP!

Page 13: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 14: PHP Turbinado com CodeIgniter - Conisli 2011

Fica impossível de manter!

Page 15: PHP Turbinado com CodeIgniter - Conisli 2011

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.

Page 16: PHP Turbinado com CodeIgniter - Conisli 2011

E se.

● O trabalho aumentar?● Entrar alguém na

equipe?● Passar o projeto

adiante?

– Documentação

– Padronização

– Reconhecimento

O cara foi embora enão conhecemos aestrutura que ele

mesmo inventou...

O que faremos?

Page 17: PHP Turbinado com CodeIgniter - Conisli 2011

Alguma solução?

Ouvi dizer queum frameworkajuda bastante

na padronizaçãoe já tem muitas

ferramentasprontas.

Também já ouvialgo sobre isso.

Mas existem tantosframeworks PHP

por aí...

Page 18: PHP Turbinado com CodeIgniter - Conisli 2011

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.

Page 19: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 20: PHP Turbinado com CodeIgniter - Conisli 2011

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).

Page 21: PHP Turbinado com CodeIgniter - Conisli 2011

Uma pausa para o MVC

● Model, View e Controller;

Dispatcher e RoutesNão fazem parte do MVC

Pode serqualquerSGDB

Page 22: PHP Turbinado com CodeIgniter - Conisli 2011

CodeIgniter

● Recursos● Arquitetura (metas)● Fluxo da Aplicação● URLs;

– Controllers

– Métodos

– Parâmetros

● Helpers e Libraries● Abstração do acesso ao banco

Page 23: PHP Turbinado com CodeIgniter - Conisli 2011

Recursos

● Model-View-Controller

● Extremamente leve

● Classe para banco de dados com suporte a vários SGBDs

● Validação de forms

● Filtro contra XSS e CSRF

● Gestão de Sessões

● Classe para envio de e-mails (formatação html, anexos, etc)

● Manipulação de imagens

● Envio de arquivos

● Paginação

● Cache

● Log de erros

● Sistema de templates

● Biblioteca XML-RPC

● Classe para Testes Unitários

● URLs amigáveis

● Sistema de rotas flexíveis

● Hooks e extensões de classes

● Muitos, muitos helpers

Page 24: PHP Turbinado com CodeIgniter - Conisli 2011

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

Page 25: PHP Turbinado com CodeIgniter - Conisli 2011

Fluxo de uma aplicação

Page 26: PHP Turbinado com CodeIgniter - Conisli 2011

Um detalhe importante

Chinês

Page 27: PHP Turbinado com CodeIgniter - Conisli 2011

Mas como ele facilita as coisas?

● Padronização!● Documentação● Organização

– Onde alterar?

– Onde adicionar?

– Onde procurar os problemas?

Page 28: PHP Turbinado com CodeIgniter - Conisli 2011

URLs do CI

● www.meusite.com/produtos/destaques/mobile

ROXO: Um controller (uma classe)

VERDE: Método

AZUL: Parâmetros para o método

Page 29: PHP Turbinado com CodeIgniter - Conisli 2011

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...

Page 30: PHP Turbinado com CodeIgniter - Conisli 2011

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”

Page 31: PHP Turbinado com CodeIgniter - Conisli 2011

Sparks!

● Sistema de módulos/pacotes para o CodeIgniter

● Integração com diversas bibliotecas

– Doctrine, oAuth, MongoDB

● Fica separado da aplicação

Page 32: PHP Turbinado com CodeIgniter - Conisli 2011

Qer aprender mais?

● Site oficial:

– http://codeigniter.com

● Comunidades● Livros● Cursos

– Turbine-se com CodeIgniter

– turbinesecomcodeigniter.com.br

Page 33: PHP Turbinado com CodeIgniter - Conisli 2011

Perguntas?

Page 34: PHP Turbinado com CodeIgniter - Conisli 2011

Obrigado!

Meus contatos● @InFog9● [email protected] ● infog.casoft.info

Recomendo:● @casoft● @turbinese