SlideShare uma empresa Scribd logo
1 de 90
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

Mais conteúdo relacionado

Mais procurados

Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação FuncionalNatan Mai
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de ProgramaçãoAdao Chiavelli
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...tdc-globalcode
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01Gabriel Demétrio
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellSérgio Souza Costa
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
1º introdução a lógica de programação
1º   introdução a lógica de programação1º   introdução a lógica de programação
1º introdução a lógica de programaçãoLucas Mendes
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaRegis Magalhães
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Aula logica de_programacao
Aula logica de_programacaoAula logica de_programacao
Aula logica de_programacaoThiago Araujo
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNsFabio Spanhol
 

Mais procurados (20)

Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação Funcional
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Oz
OzOz
Oz
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
1º introdução a lógica de programação
1º   introdução a lógica de programação1º   introdução a lógica de programação
1º introdução a lógica de programação
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Aula logica de_programacao
Aula logica de_programacaoAula logica de_programacao
Aula logica de_programacao
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
 

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

Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVACristiano Almeida
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcionalGabriel Schade Cardoso
 
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a LinguagemAtributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a LinguagemMarcelo Fabiano N. de Oliveira
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Curso completo php
Curso completo phpCurso completo php
Curso completo phpbreninho94
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaDaniel Brandão
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em RubyDaniel Andrade
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Programação Funcional - Luiz Stangarlin
Programação Funcional - Luiz StangarlinProgramação Funcional - Luiz Stangarlin
Programação Funcional - Luiz StangarlinDev PP
 

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

Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Python
PythonPython
Python
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Php Básico - Parte 1
Php Básico - Parte 1Php Básico - Parte 1
Php Básico - Parte 1
 
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a LinguagemAtributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Curso completo php
Curso completo phpCurso completo php
Curso completo php
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Aula 3
Aula 3Aula 3
Aula 3
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Programação Funcional - Luiz Stangarlin
Programação Funcional - Luiz StangarlinProgramação Funcional - Luiz Stangarlin
Programação Funcional - Luiz Stangarlin
 

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