Web sites dinâmicos:
PHP com orientação
a objetos
Maradona Morais
Sobre o minicurso
DURAÇÃO
8 horas
2 dias
4 h/d
MATERIAL
- Slides
- Apostila
e-mail
PRODUTO
Estudo de caso
ATM
O que faremos
DIA
1Teoria + prática
DIA
2Estudo de caso
Slides + exemplos + apostila
2º edição do livro
Desenvolvendo Websites com
PHP – novatec
Para melhor entender
como funciona o PHP é
necessário entender
como funciona a WEB
Computador Servidorhttp GETwww.ifrn.edu.br/informatica.html
http response
<html> … </html>
Exemplo com uma página HTML
Pro...
Computador
Servidor
http GETwww.ifrn.edu.br/informatica.php
http response
<html> … </html>
Com um PHP...
Modelo (php)
Prod...
Fonte: Spectrum / IEEE (2014)
Rasmus
Lerdorf
Personal
Home Page
Hypertext
Preprocessor
+244M
Vamos começar! Prontos?
Sumário
●
Tipos de dados
– Numéricos
– Alfanuméricos
– Booleanos (true or false)
●
Variáveis e constantes
●
Arrays
●
Opera...
Primeiro exemplo em PHP
Tipos de dados
Numéricos
Alfanuméricos
Booleanos
Numéricos
Dados Descrição
5 Valor inteiro de base decimal
4,012 Valor real com três casas decimais
,14 Valor real com duas...
Alfanuméricos (Strings)
●
Existem três formas de utilizar Strings:
– Com aspas simples (');
– Com aspas duplas (“);
– Com ...
Strings com aspas simples
●
O valor da variável será exatamente o texto 
contido entre as aspas.
●
Permite interpolar variáveis
●
Cuidado! Caracteres especiais:
– n (nova linha)
– t (tab)
–  (barra invertida)
– $ (cifrã...
Strings com aspas duplas
Strings com aspas invertidas
●
Utilizada para dar instruções para o sistema 
operacional.
Este exemplo imprime os nomes
da...
Valores booleanos
●
Representam um estado binário:
– Verdadeiro (true)
– Falso (false)
Variáveis e constantes
Sintaxe de uma variável PHP
$nome = “Rasmus Lerdorf”;
cifrão
identificador
valor
ponto e vírgula
Lembre-se: Ponto e vírgul...
Dando nome para variáveis
●
Sempre iniciam com o sinal cifrão ($) e são case­sensitive
– Alguns nomes válidos:
$bill      ...
Contantes
●
Criadas com o propósito de não mudar de valor 
durante execução. Sintaxe:
– bool define(string nome, misto val...
Arrays
O que é Array
●
Array, ou vetor, é um conjunto de variáveis. 
Possui várias formas sintáticas:
Outra forma...
...e outra forma
Operadores
Aritméticos
De comparação
Lógicos
Concatenação
Operadores aritméticos
Operador Operação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto da divisão
Operadores de comparação
●
Sempre retorna uma valor booleano
Operador Descrição
op1==op2 Verdadeiro se op1 for igual a op2...
Operadores lógicos
Operador Descrição
!op1 Verdadeiro se op1 for falso
op1 AND op2 Verdadeiro se op1 E op2 forem verdadeir...
Concatenação
●
Usa­se o ponto (.) para unir dois valores mistos.
Estruturas de controle e
repetição
If (condicional)
Switch (escolha)
While (repetição condicional)
For (repetição de passo...
If (condicional)
●
Sintaxe:
if (condicao) {
instruções
} elseif(condicao2) {
instruções
} else {
instruções
}
Switch (escolha)
●
Sintaxe:
switch (variavel) {
case valor1:
instruções
break;
case valor2:
instruções
break;
default:
ins...
While (repetição condicional)
●
Sintaxe:
while(condicao) {
instruções
}
For (repetição de passo)
●
Sintaxe:
for (inicializacao; condicao; passo) {
instruções
}
Exemplo 12
Exemplo 13
Exercite-se
 Crie um algoritmo que mostre a tabuada do
número 9.
 Crie um algoritmo com uma matriz 4x4 e
escreva os elem...
Desafio 1
 Chico tem 1,50m e cresce 2 centímetros por
ano, enquanto Juca tem 1,10m e cresce 3
centímetros por ano. Faça u...
Desafio 2
 Na usina de Angra dos Reis, os técnicos
analisam a perda de massa de um material
radioativo. Sabendo-se que es...
Foreach (para cada)
●
Usada em vetores. Sintaxe:
foreach(vetor as key) {
instruções para cada valor no vetor
}
Exemplo com foreach
Objetos
Orientação a objetos
●
Por que? Deixa o nosso codigo mais organizado 
e modulariza as nossas instruções.
●
Objeto
O que tem uma lâmpada?
Ligada: boleano
Potência: inteiro
●
Ela tem estado
– Ligada (true)
– Desligada (false)
●
Ela tem po...
O que dá pra fazer com uma
lâmpada?
Ligada: boleano
Potência: inteiro
Ligar
Desligar
●
Mudar o estado
– Ligar
– Desligar
L...
Isto é um objeto
●
Objeto  é  toda 
representação de uma 
entidade  que  possui 
funções e atributos.Ligada: boleano
Potên...
Funções em PHP
●
Sintaxe:
function nome_funcao(arg1, arg2... , argn) {
comandos
[return <expressao>]
}
Exemplo de função (não é de um
objeto)
Já sabemos como funciona
uma função, sabemos o que
são atributos... Cadê os
objetos?
Para termos objetos precisamos de
classes
●
Sintaxe de uma classe:
A variável $this
●
Uma pseudo variável $this está disponível 
quando um método da classe é chamado dentro 
de um contexto ...
A variável $this
●
Usada quando se quer chamar um método ou 
atributo da própria classe.
Exemplo 15 – Classe Loja
(loja.class.php)
Encapsulamento de um método /
atributo
●
Indica a visibilidade de um método ou atributo 
no contexto de objeto.
– Public –...
Criando objeto de uma classe
●
Para criar um objeto de uma classe fazemos:
$variavel = new Nome_da_Classe();
●
Para chamar...
Criando um objeto de Loja
(exemplo16.php)
Construtor e destrutor
●
Método que dá valores iniciais e finais de um 
objeto
Exemplo com _construct() e
_destruct()
Para que o usuário “fale”
com nosso programa ele
precisa de um meio: os
formulários!
Formulários HTML
●
Os formulários são feitos utilizando a linguagem 
HTML
Tipos de dados nos formulários
●
Podemos alterar o type de um input para obtermos 
diferentes tipos de entradas:
– text
– ...
Diferentes inputs
– Radio
– Checkbox
Select
Crie um formulário para cadastrar
uma pessoa
●
O formulário deve conter:
– nome
– sobrenome
– email
– cidade
– estado (sel...
Código (formulario.html)
Como tratar estes dados com
PHP?
●
Perceba que temos no nosso formulário:
<form action=“receber_dados.php” method=“post”>
...
Método GET
●
É o método padrão para envio de dados.
●
Os dados serão enviados juntamente com o 
nome da página (na URL) qu...
Método POST
●
O método POST envia os dados do formulário 
por meio do corpo da mensagem encaminhada 
ao servidor.
A URL fi...
Recebendo os dados
●
O PHP possui dois arrays superglobais para 
recepção de informações:
– $_GET[] ­ Recebe dados do méto...
Criando a receber_dados.php
“Toda entrada deve ser filtrada”
●
Nunca confie no usuário. Sempre verifique a 
entrada.
– Inteiro tem que ser inteiro, te...
●
empty($var);
– Retorna verdadeiro se a variável for vazia
●
strlen($string);
– Retorna o número de letras na string
●
st...
Código final (recebe_dados.php)
Atualize o código da classe Pessoa
Como manter os nossos dados
●
Para uma aplicação web é importante manter 
uma persistência de dados. 
●
PHP dá suporte nat...
COOKIE E SESSÃO
Cookie
●
Funciona como uma variável
●
Armazena um único valor
●
Depende do navegador
– Armazena dados no navegador do usuá...
Cookie
●
Definindo um cookie
– setcookie() armazena dado em cookies
– Sintaxe: setcookie(“cookie name”, “valor”)
– Aceita ...
Session
●
Permanece pelo tempo em que o usuário está na 
aplicação
●
Pouco espaço no servidor
●
Mais seguro
●
Automaticame...
Session
●
Inicializando um sessão
– Utilizamos a função session_start()
●
Deve ser a primeira linha do código
●
Finalizand...
Planejando um estudo de caso -
ATM
Usuário
- String nome
- String sobrenome
- Conta conta
Sistema
- array [ ][ ] infos
+ v...
Minicurso - Web sites dinâmicos: PHP com orientação a objetos
Minicurso - Web sites dinâmicos: PHP com orientação a objetos
Minicurso - Web sites dinâmicos: PHP com orientação a objetos
Minicurso - Web sites dinâmicos: PHP com orientação a objetos
Próximos SlideShares
Carregando em…5
×

Minicurso - Web sites dinâmicos: PHP com orientação a objetos

467 visualizações

Publicada em

Slides do minicurso "Web sites dinâmicos: PHP com orientação a objetos" feito no IFRN Apodi.

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
467
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
28
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso - Web sites dinâmicos: PHP com orientação a objetos

  1. 1. Web sites dinâmicos: PHP com orientação a objetos Maradona Morais
  2. 2. Sobre o minicurso DURAÇÃO 8 horas 2 dias 4 h/d MATERIAL - Slides - Apostila e-mail PRODUTO Estudo de caso ATM
  3. 3. O que faremos DIA 1Teoria + prática DIA 2Estudo de caso
  4. 4. Slides + exemplos + apostila 2º edição do livro Desenvolvendo Websites com PHP – novatec
  5. 5. Para melhor entender como funciona o PHP é necessário entender como funciona a WEB
  6. 6. Computador Servidorhttp GETwww.ifrn.edu.br/informatica.html http response <html> … </html> Exemplo com uma página HTML Produto (html)
  7. 7. Computador Servidor http GETwww.ifrn.edu.br/informatica.php http response <html> … </html> Com um PHP... Modelo (php) Produto (html)
  8. 8. Fonte: Spectrum / IEEE (2014)
  9. 9. Rasmus Lerdorf Personal Home Page Hypertext Preprocessor
  10. 10. +244M
  11. 11. Vamos começar! Prontos?
  12. 12. Sumário ● Tipos de dados – Numéricos – Alfanuméricos – Booleanos (true or false) ● Variáveis e constantes ● Arrays ● Operadores – Aritméticos – De comparação – Lógicos – Concatenação ● Estruturas de controle – If – Switch – While – For – Foreach ● Orientação a objetos – Classes ● Métodos ● Atributos ● Trabalhando com formulários – $_GET – $_POST ● $_SESSION ● $_COOKIE ● $_SERVER
  13. 13. Primeiro exemplo em PHP
  14. 14. Tipos de dados Numéricos Alfanuméricos Booleanos
  15. 15. Numéricos Dados Descrição 5 Valor inteiro de base decimal 4,012 Valor real com três casas decimais ,14 Valor real com duas casas decimais 033 Valor inteiro na base octal. Todo valor iniciado com 0 é considerado de base 8 0xBC Valor inteiro na base hexadecimal. Todo valor iniciado com 0x é considerado de base 16 43000000 É um numero real grande, que pode ser expresso por 4.3E+7
  16. 16. Alfanuméricos (Strings) ● Existem três formas de utilizar Strings: – Com aspas simples ('); – Com aspas duplas (“); – Com aspas invertidas (`)
  17. 17. Strings com aspas simples ● O valor da variável será exatamente o texto  contido entre as aspas.
  18. 18. ● Permite interpolar variáveis ● Cuidado! Caracteres especiais: – n (nova linha) – t (tab) –  (barra invertida) – $ (cifrão) – ' (aspa simples) – “ (aspa dupla) Strings com aspas duplas
  19. 19. Strings com aspas duplas
  20. 20. Strings com aspas invertidas ● Utilizada para dar instruções para o sistema  operacional. Este exemplo imprime os nomes das páginas no mesmo diretório com extensão .html (No linux)
  21. 21. Valores booleanos ● Representam um estado binário: – Verdadeiro (true) – Falso (false)
  22. 22. Variáveis e constantes
  23. 23. Sintaxe de uma variável PHP $nome = “Rasmus Lerdorf”; cifrão identificador valor ponto e vírgula Lembre-se: Ponto e vírgula, sempre!
  24. 24. Dando nome para variáveis ● Sempre iniciam com o sinal cifrão ($) e são case­sensitive – Alguns nomes válidos: $bill                                        $head_count $MaximumForce                   $I_HEART_PHP $_underscore                          $_int – Alguns nomes ilegais: $not valid                                $| $3wa – Todas estas são diferentes: $hot_stuff                   $Hot_stuff $hot_Stuff                     $HOT_STUFF
  25. 25. Contantes ● Criadas com o propósito de não mudar de valor  durante execução. Sintaxe: – bool define(string nome, misto valor [, bool case_insensitive]) ● Exemplo: – define(“SOBRENOME”, “Ferreira”); – define(“SOBRENOME”, “Ferreira”, true);
  26. 26. Arrays
  27. 27. O que é Array ● Array, ou vetor, é um conjunto de variáveis.  Possui várias formas sintáticas:
  28. 28. Outra forma...
  29. 29. ...e outra forma
  30. 30. Operadores Aritméticos De comparação Lógicos Concatenação
  31. 31. Operadores aritméticos Operador Operação + Adição - Subtração * Multiplicação / Divisão % Resto da divisão
  32. 32. Operadores de comparação ● Sempre retorna uma valor booleano Operador Descrição op1==op2 Verdadeiro se op1 for igual a op2 op1>=op2 Verdadeiro se op1 for maior ou igual a op2 op1<=op2 Verdadeiro se op1 for menor ou igual a op2 op1!=op2 Verdadeiro se op1 for diferente op1<>op2 Também serve para representar diferença op1>op2 Verdadeiro se op1 for maior que op2 op1<op2 Verdadeiro se op1 for menor que op2
  33. 33. Operadores lógicos Operador Descrição !op1 Verdadeiro se op1 for falso op1 AND op2 Verdadeiro se op1 E op2 forem verdadeiros op1 OR op2 Verdadeiro se op1 OU op2 forem verdadeiros op1 XOR op2 Verdadeiro se só op1 ou só op2 for verdadeiro op1 && op2 Verdadeiro se op1 E op2 forem verdadeiros op1 || op2 Verdadeiro se op1 OU op2 forem verdadeiros
  34. 34. Concatenação ● Usa­se o ponto (.) para unir dois valores mistos.
  35. 35. Estruturas de controle e repetição If (condicional) Switch (escolha) While (repetição condicional) For (repetição de passo) Foreach (repetição para cada)
  36. 36. If (condicional) ● Sintaxe: if (condicao) { instruções } elseif(condicao2) { instruções } else { instruções }
  37. 37. Switch (escolha) ● Sintaxe: switch (variavel) { case valor1: instruções break; case valor2: instruções break; default: instruções break; }
  38. 38. While (repetição condicional) ● Sintaxe: while(condicao) { instruções }
  39. 39. For (repetição de passo) ● Sintaxe: for (inicializacao; condicao; passo) { instruções }
  40. 40. Exemplo 12
  41. 41. Exemplo 13
  42. 42. Exercite-se  Crie um algoritmo que mostre a tabuada do número 9.  Crie um algoritmo com uma matriz 4x4 e escreva os elementos da diagonal principal.
  43. 43. Desafio 1  Chico tem 1,50m e cresce 2 centímetros por ano, enquanto Juca tem 1,10m e cresce 3 centímetros por ano. Faça um algoritmo que calcule quantos anos serão necessários para que Juca seja maior que Chico
  44. 44. Desafio 2  Na usina de Angra dos Reis, os técnicos analisam a perda de massa de um material radioativo. Sabendo-se que este perde 25% de sua massa a cada 30 segundos, crie um algoritmo que imprima o tempo necessário para que a massa desse material seja menor que 0.10.
  45. 45. Foreach (para cada) ● Usada em vetores. Sintaxe: foreach(vetor as key) { instruções para cada valor no vetor }
  46. 46. Exemplo com foreach
  47. 47. Objetos
  48. 48. Orientação a objetos ● Por que? Deixa o nosso codigo mais organizado  e modulariza as nossas instruções. ● Objeto
  49. 49. O que tem uma lâmpada? Ligada: boleano Potência: inteiro ● Ela tem estado – Ligada (true) – Desligada (false) ● Ela tem potência – 60W, 24W, 100W... Estado e potência são atributos da lâmpada
  50. 50. O que dá pra fazer com uma lâmpada? Ligada: boleano Potência: inteiro Ligar Desligar ● Mudar o estado – Ligar – Desligar Ligar e desligar são funções de uma lâmpada
  51. 51. Isto é um objeto ● Objeto  é  toda  representação de uma  entidade  que  possui  funções e atributos.Ligada: boleano Potência: inteiro Ligar Desligar
  52. 52. Funções em PHP ● Sintaxe: function nome_funcao(arg1, arg2... , argn) { comandos [return <expressao>] }
  53. 53. Exemplo de função (não é de um objeto)
  54. 54. Já sabemos como funciona uma função, sabemos o que são atributos... Cadê os objetos?
  55. 55. Para termos objetos precisamos de classes ● Sintaxe de uma classe:
  56. 56. A variável $this ● Uma pseudo variável $this está disponível  quando um método da classe é chamado dentro  de um contexto de objeto. ● Sua implementação normalmente se encontra  dentro do escopo de um método. ● $this é uma referência para o objeto que  chama o método ou o atributo.
  57. 57. A variável $this ● Usada quando se quer chamar um método ou  atributo da própria classe.
  58. 58. Exemplo 15 – Classe Loja (loja.class.php)
  59. 59. Encapsulamento de um método / atributo ● Indica a visibilidade de um método ou atributo  no contexto de objeto. – Public – o método/atributo pode ser chamado por  qualquer código. – Private – o método/atributo só pode ser chamado  pela própria classe que define o objeto.
  60. 60. Criando objeto de uma classe ● Para criar um objeto de uma classe fazemos: $variavel = new Nome_da_Classe(); ● Para chamar um método public: $variavel­>nome_metodo([argumentos]); ● Para chamar um atributo public: $variavel­>atributo;
  61. 61. Criando um objeto de Loja (exemplo16.php)
  62. 62. Construtor e destrutor ● Método que dá valores iniciais e finais de um  objeto
  63. 63. Exemplo com _construct() e _destruct()
  64. 64. Para que o usuário “fale” com nosso programa ele precisa de um meio: os formulários!
  65. 65. Formulários HTML ● Os formulários são feitos utilizando a linguagem  HTML
  66. 66. Tipos de dados nos formulários ● Podemos alterar o type de um input para obtermos  diferentes tipos de entradas: – text – checkbox – radio – number – email – date – 17 outros O type=”submit” gera um botão para envio do formulário!
  67. 67. Diferentes inputs – Radio – Checkbox
  68. 68. Select
  69. 69. Crie um formulário para cadastrar uma pessoa ● O formulário deve conter: – nome – sobrenome – email – cidade – estado (select com 3 estados)
  70. 70. Código (formulario.html)
  71. 71. Como tratar estes dados com PHP? ● Perceba que temos no nosso formulário: <form action=“receber_dados.php” method=“post”> ● O method indica a forma pela qual os dados serão  repassados para a página indicada em action. ● Para isso conheçamos os métodos POST e GET
  72. 72. Método GET ● É o método padrão para envio de dados. ● Os dados serão enviados juntamente com o  nome da página (na URL) que receberá os  dados. Ex: receber_dados.php?nome=Chico&idade=17
  73. 73. Método POST ● O método POST envia os dados do formulário  por meio do corpo da mensagem encaminhada  ao servidor. A URL fica: receber_dados.php
  74. 74. Recebendo os dados ● O PHP possui dois arrays superglobais para  recepção de informações: – $_GET[] ­ Recebe dados do método GET ● $_GET['nome'], $_GET['email'] – $_POST[] ­ Recebe dados do método POST ● $_POST['nome'], $_POST['email']
  75. 75. Criando a receber_dados.php
  76. 76. “Toda entrada deve ser filtrada” ● Nunca confie no usuário. Sempre verifique a  entrada. – Inteiro tem que ser inteiro, texto tem que ser texto. ● htmlspecialchars(string); – Impede que o usuário insira tags HTML como  entrada.
  77. 77. ● empty($var); – Retorna verdadeiro se a variável for vazia ● strlen($string); – Retorna o número de letras na string ● strstr($string, string delimitador); – Acha a primeira ocorrência de uma string (utilizada  em e­mails, por exemplo)
  78. 78. Código final (recebe_dados.php)
  79. 79. Atualize o código da classe Pessoa
  80. 80. Como manter os nossos dados ● Para uma aplicação web é importante manter  uma persistência de dados.  ● PHP dá suporte nativo à maioria dos bancos de  dados. ● Não iremos, infelizmente, trabalhar com banco  de dados. Porém, veremos como manter uma  persistência dos dados inseridos pelo usuário.
  81. 81. COOKIE E SESSÃO
  82. 82. Cookie ● Funciona como uma variável ● Armazena um único valor ● Depende do navegador – Armazena dados no navegador do usuário ● Move de página a página
  83. 83. Cookie ● Definindo um cookie – setcookie() armazena dado em cookies – Sintaxe: setcookie(“cookie name”, “valor”) – Aceita um terceiro argumento opcional ● Definir uma data de expiração para o cookie Ex: setcookie('username', 'asscssh', time()+(60*60)); ● Chamando um cookie – Usando a super global $_COOKIE Ex: $_COOKIE['username']
  84. 84. Session ● Permanece pelo tempo em que o usuário está na  aplicação ● Pouco espaço no servidor ● Mais seguro ● Automaticamente deletada quando o navegador  é fechado ● Armazena na super global $_SESSION
  85. 85. Session ● Inicializando um sessão – Utilizamos a função session_start() ● Deve ser a primeira linha do código ● Finalizando um sessão – Utilizamos a função session_destroy()
  86. 86. Planejando um estudo de caso - ATM Usuário - String nome - String sobrenome - Conta conta Sistema - array [ ][ ] infos + void initInfos() + Usuario autenticar(conta, senha) + atualizaValor(valor, conta) + pegaSaldo(conta) Conta - int numero - int senha - float saldo + depositar(valor) + sacar(valor) + transferir(valor, conta) us SESSION

×