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
Produto (html)
Computador
Servidor
http GETwww.ifrn.edu.br/informatica.php
http response
<html> … </html>
Com um PHP...
Modelo (php)
Produto (html)
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
●
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
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 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
Alfanuméricos (Strings)
●
Existem três formas de utilizar Strings:
– Com aspas simples (');
– Com aspas duplas (“);
– Com aspas invertidas (`)
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ão)
– ' (aspa simples)
– “ (aspa dupla)
Strings com aspas duplas
Strings com aspas duplas
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)
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írgula, sempre!
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
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);
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
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
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
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)
Foreach (repetição para cada)
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:
instruções
break;
}
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 elementos da diagonal principal.
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
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.
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 potência
– 60W, 24W, 100W...
Estado e potência são atributos da lâmpada
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
Isto é um objeto
●
Objeto  é  toda 
representação de uma 
entidade  que  possui 
funções e atributos.Ligada: boleano
Potência: inteiro
Ligar
Desligar
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 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.
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 – 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.
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;
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
– checkbox
– radio
– number
– email
– date
– 17 outros
O type=”submit” gera um botão
para envio do formulário!
Diferentes inputs
– Radio
– Checkbox
Select
Crie um formulário para cadastrar
uma pessoa
●
O formulário deve conter:
– nome
– sobrenome
– email
– cidade
– estado (select com 3 estados)
Código (formulario.html)
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
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
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
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']
Criando a receber_dados.php
“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.
●
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)
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 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.
COOKIE E SESSÃO
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
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']
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
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()
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
Minicurso - Web sites dinâmicos: PHP com orientação a objetos

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