SlideShare uma empresa Scribd logo
Fundamentos da Programação
PHP OO
Pós-Graduação em Desenvolvimento
Web
PHP OO – Classes Finais
Classes Finais
 Classes que não podem ter herdeiros (não podem
ser superclasses);
 Sintaxe - Exemplo:
3
<?php
final class ContaPoupanca extends Conta
{
// ...
PHP OO – Métodos Finais
Métodos Finais
 Métodos que não podem ser sobrescritos;
 Proíbem que subclasses usem polimorfismo!
 Usamos a palavra reservada final na assinatura de
um método para impedir que seja sobrescrita;
5
Métodos Finais
 Sintaxe - Exemplo:
6
<?php
// ...
final function transferir($conta)
{
// ...
PHP OO – Encapsulamento
Encapsulamento
 Mecanismo que provê proteção de acesso aos
atributos e métodos de um objeto;
 A depender de um projeto de uma classe, certos
atributos e métodos devem ser tratados
exclusivamente:
 Pela classe que os possui;
 Pela superclasse e subclasses em uma hierarquia;
 Por qualquer classe ou script;
8
Encapsulamento
 Para definir a visibilidade dos membros de um
objeto, usamos as palavras reservadas public,
private ou protected na assinatura de atributos e
métodos;
 public – Podem ser acessados livremente;
 private – Podem ser acessados dentro da própria
classe em que foram declarados;
 protected – Podem ser acessados dentro da
própria classe em que foram declarados e a partir
das classes descendentes;
9
Encapsulamento
 Representação UML para as visibilidades de
atributos e métodos em diagramas de classe:
 (+) public;
 (-) private;
 (#) protected;
10
Encapsulamento
 Exemplo:
11
Encapsulamento
 Exemplo:
12
PHP OO – Armazenamento de
Dados em Classes
Armazenamento em Classes
 Os seguintes membros podem ser utilizados para
armazenamento de dados em classes:
 Constantes;
 Atributos Estáticos;
 Podem ser acessados diretamente a partir do nome
da classe, sem a necessidade de um objeto para tal;
14
Armazenamento em Classes
 Sintaxe – Constantes – Exemplo:
 Para acessar uma constante de classe...
 ... a partir da própria classe: self::Nome;
 ... a partir de uma subclasse: parent::Nome;
 ... Externamente, fora da hierarquia: Biblioteca::Nome;
15
<?php
class Biblioteca
{
const Nome = “GTK ”;
}
?>
Armazenamento em Classes
 Sintaxe – Constantes – Exemplo:
16
<?php
class Biblioteca
{
const Nome = “GTK ”;
public function imprimeConstante() {
echo self::Nome . "<br>";
}
}
echo Biblioteca::Nome . ‘<br>’;
?>
Armazenamento em Classes
 Sintaxe – Atributos Estáticos – Exemplo:
 Para acessar um atributo de classe estático...
 ... a partir da própria classe: self::$Quantidade ou
static::$Quantidade;
 ... a partir de uma subclasse: parent::$Quantidade;
 ... Externamente, fora da hierarquia:
Aplicacao::$Quantidade; 17
<?php
class Aplicacao
{
public static $Quantidade;
}
?>
Armazenamento em Classes
 Sintaxe – Atributos Estáticos – Exemplo:
18
<?php
class Aplicacao
{
public static $Quantidade;
function __construct()
{
static::$Quantidade++;
}
}
$app1 = new Aplicacao();
echo Aplicacao::$Quantidade . '<br>';
$app2 = new Aplicacao();
echo Aplicacao::$Quantidade . '<br>';
?>
PHP OO – Métodos Estáticos
Métodos Estáticos
 Podem ser invocados diretamente pelo nome da
classe, sem a necessidade de instanciar um objeto;
 Também permitem que outras classes possam manipular
atributos estáticos privados de uma classe fornecedora;
 Usamos a palavra reservada static na assinatura de
um método de classe;
 Usamos a sintaxe NomeDaClasse::NomeDoMetodo()
para executar um método estático;
20
Métodos Estáticos
21
<?php
class Aplicacao {
private static $Quantidade;
public function __construct() {
static::$Quantidade++;
}
public static function imprimeContador() {
return static::$Quantidade;
}
}
$app1 = new Aplicacao();
echo Aplicacao::imprimeContador() . '<br>';
$app2 = new Aplicacao();
echo Aplicacao::imprimeContador() . '<br>';
?>
PHP OO – Interfaces
Interfaces
 “Obriga” a um determinado grupo de classes a ter
métodos em comum;
 Funciona como uma espécie de contrato que, quando
assumido por uma classe, deve ser implementado;
 Apenas assinaturas de métodos fazem parte do
corpo de interfaces;
 As classes que seguem este “contrato” deverão
implementar o comportamento dos métodos;
 Tal estrutura não possui atributos;
23
Interface
 Usamos a palavra reservada interface na assinatura
da classe que funcionará como uma interface;
 Usamos a palavra reservada implements na
assinatura da classe que implementará uma
interface;
 Uma classe pode implementar mais de uma
interface;
24
Interface
 Sintaxe – Exemplo:
25
<?php
interface IMensagem
{
function mensagem();
}
class Aplicacao implements IMensagem
{
function mensagem() {
echo ‘Exemplo interface’;
}
}
?>
<< interface >>
IMensagem
+ mensagem()
Interfaces
 Ex:
26
Figura
# x: double
# y: double
Triangulo
<< interface >>
ICalculos
+ calculaArea(): double
+ calculaArea(): double
Quadrado
+ calculaArea(): double
Exercício
Exercício
• Etapa 1 – Preparação do Domínio
 Crie uma pasta em htdocs chamada contrato;
 Na pasta contrato, crie uma pasta chamada
classes;
28
Exercício
 Etapa 2 - Implemente as classes abaixo na
pasta dedicada para tal:
29
Veiculo
# nome: String
# marca: String
# modelo: String
getters e setters
Carro
<< interface >>
ICaracteristicas
+ exibeNome()
+ exibeMarca()
+ exibeModelo()
Moto
+ exibeNome()
+ exibeMarca()
+ exibeModelo()
+ exibeNome()
+ exibeMarca()
+ exibeModelo()
Exercício
• Etapa 3 – Criação de um formulário HTML
 Crie um formulário HTML que permita ao usuário
digitar o nome, marca e modelo de um veículo,
além de informar o tipo de veículo;
 Método de envio: POST;
 Os dados deverão ser submetidos para o script
“exibir_veiculo.php”;
 Salve o documento HTML na pasta contrato com o
nome index.html;
30
Exercício
• Etapa 4 – Criação do script exibir_veiculo.php
na pasta contrato
 O script deverá inicialmente receber os dados submetidos
pelo formulário HTML;
 Em seguida, o script deverá criar um objeto da classe que
representa o veículo selecionado;
 Com o objeto criado, os dados enviados a partir do
formulário deverão ser submetidos para o mesmo;
 O script deverá exibir as observações do veículo;
31
PDO – PHP Data Objects
PDO – PHP Data Objects
 Unifica o acesso às diferentes extensões de bancos
de dados presentes em PHP;
 Provê uma API limpa e consistente, unificando a
maioria das características presentes nas extensões
de acesso a banco de dados
 Unifica a chamada de métodos, graças à orientação
a objetos a partir do PHP 5;
33
PDO – PHP Data Objects
• Sequência de passos:
1. A aplicação estabelece uma conexão com o SGBD;
2. A aplicação seleciona uma base de dados a ser
utilizada durante a conexão;
3. A aplicação executa uma consulta específica
(seleção, inserção, remoção...);
4. A aplicação fecha a conexão corrente com o
SGBD;
PDO – PHP Data Objects
 PDO – Conexão com bancos de dados:
35
Banco String de Conexão
SQLite new PDO(‘sqlite: teste.db’);
FireBird new PDO(“firebird:dbname=C:base.GDB”, “SYSDBA”, “masterkey”);
MySQL new PDO('mysql:host=localhost;dbname=base', 'login', 'senha');
Postgres new PDO('pgsql:dbname=example; user=user;
password=senha;host=localhost');
PDO – Exemplos
PDO – Exemplos
 No phpmyadmin, configure o banco de dados da
atividade:
 Database: livros
 Tabela: famosos
 Campos: id (int, auto increment, chave primária) e
nome (varchar[100]);
37
PDO – Exemplos
 Exemplo 1: Inserindo dados via PDO
38
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', 'Root',
'Unipe');
$conn->exec("INSERT INTO famosos (nome) VALUES
('Thyago Maia')");
$conn = null;
?>
PDO – Exemplos
 Exemplo 2: Listagem via PDO
39
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', 'Root',
'Unipe');
$result = $conn->query("SELECT id, nome from
famosos");
if($result)
foreach($result as $row)
echo $row['id'] . '-' .
$row['nome'] . '<br>';
$conn = null;
?>
PDO – Exemplos
 Exemplo 3: Excluindo dados via PDO
40
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', 'Root',
'Unipe');
$conn->exec("DELETE FROM famosos WHERE id =
1");
$conn = null;
?>
Exercício
Exercício
• Etapa 1 – Preparação do Banco de Dados no
phpmyadmin
 Database: sistema
 Tabela: cadastro
 Campos: codigo (int, auto increment, chave primária),
nome (varchar[100]), telefone (varchar[100]) e email
(varchar[100]);
42
Exercício
• Etapa 2 – Preparação do Domínio
 Crie uma pasta em htdocs chamada sistema;
43
Exercício
• Etapa 3 – Criação de um formulário HTML
 Crie um formulário HTML que permita ao usuário
digitar seu nome, telefone e e-mail;
 Método de envio: POST;
 Os dados deverão ser submetidos para o script
“cadastro.php”;
 Salve o documento HTML na pasta sistema com o
nome index.html;
44
Exercício
• Etapa 4 – Criação do script cadastro.php na
pasta sistema
 O script deverá inicialmente receber os dados
submetidos na etapa anterior;
 Em seguida, via PDO, o script deverá inserir os
dados no banco de dados;
 O script deverá redirecionar o usuário para o
script lista_usuarios.php;
45
Exercício
• Etapa 5 – Criação do script lista_usuarios.php
na pasta sistema
– O script deverá exibir todos os cadastros efetuados até o
momento, além de disponibilizar um link que permita ao
usuário efetuar um novo cadastro;
46
Exercício
• Etapa 6 – Testar a aplicação
 Abra o navegador de sua preferência e acesse:
 http://localhost/sistema ou
 http://127.0.0.1/sistema
 OBS.: Verifique se o servidor Apache do Xampp está ativo;
47
Exercício
Exercício
• Etapa 1 – Preparação do Banco de Dados no
phpmyadmin
 Utilizaremos a mesma base criada no exercício anterior;
49
Exercício
• Etapa 2 – Preparação do Domínio
 Utilizaremos a pasta sistema criada
anteriormente;
50
Exercício
• Etapa 3 – Criação de um formulário HTML
 Utilizaremos o mesmo formulário do exercício
anterior;
51
Exercício
• Etapa 4 – Criação da classe Cadastro.php na
pasta sistema
52
Cadastro
-nome: string
-telefone: string
-email: string
+setNome(nome: string) : void
+setTelefone(telefone: string) : void
+setEmail(email: string) : void
+getNome() : string
+getTelefone() : string
+getEmail() : string
+inserir() : void
+exibir() :void
Exercício
• Etapa 5 – Atualização do script cadastro.php
da pasta sistema
 O script deverá:
 Receber os dados submetidos na etapa anterior;
 Instanciar um objeto da classe Cadastro;
 Atribuir os dados recebidos para o objeto instanciado;
 Executar o método inserir a partir do objeto
instanciado;
 Executar o método exibir a partir do objeto
instanciado;
 Disponibilizar um link que permita ao usuário efetuar
um novo cadastro;
53
Exercício
• Etapa 6 – Testar a aplicação
 Abra o navegador de sua preferência e acesse:
 http://localhost/sistema ou
 http://127.0.0.1/sistema
 OBS.: Verifique se o servidor Apache do Xampp está ativo!
54

Mais conteúdo relacionado

Mais procurados

PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
George Mendonça
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
thomasdacosta
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
George Mendonça
 
Aula1
Aula1Aula1
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
Rafael Pinheiro
 
Coletanea UML e OO (ESAF) - Jaime Correia
Coletanea UML e OO (ESAF) - Jaime CorreiaColetanea UML e OO (ESAF) - Jaime Correia
Coletanea UML e OO (ESAF) - Jaime Correia
Walter Cunha
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
thomasdacosta
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Rafael Pinheiro
 
Java13
Java13Java13
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
thomasdacosta
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
Andre Nascimento
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
thomasdacosta
 
Java2
Java2Java2
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
Marcos Castro
 
Java5
Java5Java5
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
Paulo Cesar Ortins Brito
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
Natanael Fonseca
 
Java1
Java1Java1
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
thomasdacosta
 

Mais procurados (20)

PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
Aula1
Aula1Aula1
Aula1
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
 
Coletanea UML e OO (ESAF) - Jaime Correia
Coletanea UML e OO (ESAF) - Jaime CorreiaColetanea UML e OO (ESAF) - Jaime Correia
Coletanea UML e OO (ESAF) - Jaime Correia
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Java13
Java13Java13
Java13
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Java2
Java2Java2
Java2
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Java5
Java5Java5
Java5
 
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Java1
Java1Java1
Java1
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 

Semelhante a Fundamentos da Programação PHP OO - Aula 3

Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
Thyago Maia
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
Israel Messias
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
Andréia Santos
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Jorge Luís Gregório
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
Daniel Brandão
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
Erisvaldo Junior
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
Raniere de Lima
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Thyago Maia
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
Norton Guimarães
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
PauloRobertoBolsanel
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
Vinícius de Paula
 
Modern PHP
Modern PHPModern PHP
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
Elton Minetto
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
BrunoSouza617
 
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECLPHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
Erick Belluci Tedeschi
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
Marcos Bezerra
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
Otávio Calaça Xavier
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de Cakephp
Cauan Cabral
 
Python 08
Python 08Python 08
Python 08
Bruno Catão
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
Anderson Gonçalves
 

Semelhante a Fundamentos da Programação PHP OO - Aula 3 (20)

Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECLPHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de Cakephp
 
Python 08
Python 08Python 08
Python 08
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 

Mais de Thyago Maia

Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Thyago Maia
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Thyago Maia
 
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Thyago Maia
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
Thyago Maia
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Thyago Maia
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Thyago Maia
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Thyago Maia
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Thyago Maia
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
Thyago Maia
 

Mais de Thyago Maia (9)

Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
 
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
 

Último

UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
Manuais Formação
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Centro Jacques Delors
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
ReinaldoSouza57
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 

Último (20)

UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 

Fundamentos da Programação PHP OO - Aula 3

  • 1. Fundamentos da Programação PHP OO Pós-Graduação em Desenvolvimento Web
  • 2. PHP OO – Classes Finais
  • 3. Classes Finais  Classes que não podem ter herdeiros (não podem ser superclasses);  Sintaxe - Exemplo: 3 <?php final class ContaPoupanca extends Conta { // ...
  • 4. PHP OO – Métodos Finais
  • 5. Métodos Finais  Métodos que não podem ser sobrescritos;  Proíbem que subclasses usem polimorfismo!  Usamos a palavra reservada final na assinatura de um método para impedir que seja sobrescrita; 5
  • 6. Métodos Finais  Sintaxe - Exemplo: 6 <?php // ... final function transferir($conta) { // ...
  • 7. PHP OO – Encapsulamento
  • 8. Encapsulamento  Mecanismo que provê proteção de acesso aos atributos e métodos de um objeto;  A depender de um projeto de uma classe, certos atributos e métodos devem ser tratados exclusivamente:  Pela classe que os possui;  Pela superclasse e subclasses em uma hierarquia;  Por qualquer classe ou script; 8
  • 9. Encapsulamento  Para definir a visibilidade dos membros de um objeto, usamos as palavras reservadas public, private ou protected na assinatura de atributos e métodos;  public – Podem ser acessados livremente;  private – Podem ser acessados dentro da própria classe em que foram declarados;  protected – Podem ser acessados dentro da própria classe em que foram declarados e a partir das classes descendentes; 9
  • 10. Encapsulamento  Representação UML para as visibilidades de atributos e métodos em diagramas de classe:  (+) public;  (-) private;  (#) protected; 10
  • 13. PHP OO – Armazenamento de Dados em Classes
  • 14. Armazenamento em Classes  Os seguintes membros podem ser utilizados para armazenamento de dados em classes:  Constantes;  Atributos Estáticos;  Podem ser acessados diretamente a partir do nome da classe, sem a necessidade de um objeto para tal; 14
  • 15. Armazenamento em Classes  Sintaxe – Constantes – Exemplo:  Para acessar uma constante de classe...  ... a partir da própria classe: self::Nome;  ... a partir de uma subclasse: parent::Nome;  ... Externamente, fora da hierarquia: Biblioteca::Nome; 15 <?php class Biblioteca { const Nome = “GTK ”; } ?>
  • 16. Armazenamento em Classes  Sintaxe – Constantes – Exemplo: 16 <?php class Biblioteca { const Nome = “GTK ”; public function imprimeConstante() { echo self::Nome . "<br>"; } } echo Biblioteca::Nome . ‘<br>’; ?>
  • 17. Armazenamento em Classes  Sintaxe – Atributos Estáticos – Exemplo:  Para acessar um atributo de classe estático...  ... a partir da própria classe: self::$Quantidade ou static::$Quantidade;  ... a partir de uma subclasse: parent::$Quantidade;  ... Externamente, fora da hierarquia: Aplicacao::$Quantidade; 17 <?php class Aplicacao { public static $Quantidade; } ?>
  • 18. Armazenamento em Classes  Sintaxe – Atributos Estáticos – Exemplo: 18 <?php class Aplicacao { public static $Quantidade; function __construct() { static::$Quantidade++; } } $app1 = new Aplicacao(); echo Aplicacao::$Quantidade . '<br>'; $app2 = new Aplicacao(); echo Aplicacao::$Quantidade . '<br>'; ?>
  • 19. PHP OO – Métodos Estáticos
  • 20. Métodos Estáticos  Podem ser invocados diretamente pelo nome da classe, sem a necessidade de instanciar um objeto;  Também permitem que outras classes possam manipular atributos estáticos privados de uma classe fornecedora;  Usamos a palavra reservada static na assinatura de um método de classe;  Usamos a sintaxe NomeDaClasse::NomeDoMetodo() para executar um método estático; 20
  • 21. Métodos Estáticos 21 <?php class Aplicacao { private static $Quantidade; public function __construct() { static::$Quantidade++; } public static function imprimeContador() { return static::$Quantidade; } } $app1 = new Aplicacao(); echo Aplicacao::imprimeContador() . '<br>'; $app2 = new Aplicacao(); echo Aplicacao::imprimeContador() . '<br>'; ?>
  • 22. PHP OO – Interfaces
  • 23. Interfaces  “Obriga” a um determinado grupo de classes a ter métodos em comum;  Funciona como uma espécie de contrato que, quando assumido por uma classe, deve ser implementado;  Apenas assinaturas de métodos fazem parte do corpo de interfaces;  As classes que seguem este “contrato” deverão implementar o comportamento dos métodos;  Tal estrutura não possui atributos; 23
  • 24. Interface  Usamos a palavra reservada interface na assinatura da classe que funcionará como uma interface;  Usamos a palavra reservada implements na assinatura da classe que implementará uma interface;  Uma classe pode implementar mais de uma interface; 24
  • 25. Interface  Sintaxe – Exemplo: 25 <?php interface IMensagem { function mensagem(); } class Aplicacao implements IMensagem { function mensagem() { echo ‘Exemplo interface’; } } ?> << interface >> IMensagem + mensagem()
  • 26. Interfaces  Ex: 26 Figura # x: double # y: double Triangulo << interface >> ICalculos + calculaArea(): double + calculaArea(): double Quadrado + calculaArea(): double
  • 28. Exercício • Etapa 1 – Preparação do Domínio  Crie uma pasta em htdocs chamada contrato;  Na pasta contrato, crie uma pasta chamada classes; 28
  • 29. Exercício  Etapa 2 - Implemente as classes abaixo na pasta dedicada para tal: 29 Veiculo # nome: String # marca: String # modelo: String getters e setters Carro << interface >> ICaracteristicas + exibeNome() + exibeMarca() + exibeModelo() Moto + exibeNome() + exibeMarca() + exibeModelo() + exibeNome() + exibeMarca() + exibeModelo()
  • 30. Exercício • Etapa 3 – Criação de um formulário HTML  Crie um formulário HTML que permita ao usuário digitar o nome, marca e modelo de um veículo, além de informar o tipo de veículo;  Método de envio: POST;  Os dados deverão ser submetidos para o script “exibir_veiculo.php”;  Salve o documento HTML na pasta contrato com o nome index.html; 30
  • 31. Exercício • Etapa 4 – Criação do script exibir_veiculo.php na pasta contrato  O script deverá inicialmente receber os dados submetidos pelo formulário HTML;  Em seguida, o script deverá criar um objeto da classe que representa o veículo selecionado;  Com o objeto criado, os dados enviados a partir do formulário deverão ser submetidos para o mesmo;  O script deverá exibir as observações do veículo; 31
  • 32. PDO – PHP Data Objects
  • 33. PDO – PHP Data Objects  Unifica o acesso às diferentes extensões de bancos de dados presentes em PHP;  Provê uma API limpa e consistente, unificando a maioria das características presentes nas extensões de acesso a banco de dados  Unifica a chamada de métodos, graças à orientação a objetos a partir do PHP 5; 33
  • 34. PDO – PHP Data Objects • Sequência de passos: 1. A aplicação estabelece uma conexão com o SGBD; 2. A aplicação seleciona uma base de dados a ser utilizada durante a conexão; 3. A aplicação executa uma consulta específica (seleção, inserção, remoção...); 4. A aplicação fecha a conexão corrente com o SGBD;
  • 35. PDO – PHP Data Objects  PDO – Conexão com bancos de dados: 35 Banco String de Conexão SQLite new PDO(‘sqlite: teste.db’); FireBird new PDO(“firebird:dbname=C:base.GDB”, “SYSDBA”, “masterkey”); MySQL new PDO('mysql:host=localhost;dbname=base', 'login', 'senha'); Postgres new PDO('pgsql:dbname=example; user=user; password=senha;host=localhost');
  • 37. PDO – Exemplos  No phpmyadmin, configure o banco de dados da atividade:  Database: livros  Tabela: famosos  Campos: id (int, auto increment, chave primária) e nome (varchar[100]); 37
  • 38. PDO – Exemplos  Exemplo 1: Inserindo dados via PDO 38 <?php $conn = new PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe'); $conn->exec("INSERT INTO famosos (nome) VALUES ('Thyago Maia')"); $conn = null; ?>
  • 39. PDO – Exemplos  Exemplo 2: Listagem via PDO 39 <?php $conn = new PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe'); $result = $conn->query("SELECT id, nome from famosos"); if($result) foreach($result as $row) echo $row['id'] . '-' . $row['nome'] . '<br>'; $conn = null; ?>
  • 40. PDO – Exemplos  Exemplo 3: Excluindo dados via PDO 40 <?php $conn = new PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe'); $conn->exec("DELETE FROM famosos WHERE id = 1"); $conn = null; ?>
  • 42. Exercício • Etapa 1 – Preparação do Banco de Dados no phpmyadmin  Database: sistema  Tabela: cadastro  Campos: codigo (int, auto increment, chave primária), nome (varchar[100]), telefone (varchar[100]) e email (varchar[100]); 42
  • 43. Exercício • Etapa 2 – Preparação do Domínio  Crie uma pasta em htdocs chamada sistema; 43
  • 44. Exercício • Etapa 3 – Criação de um formulário HTML  Crie um formulário HTML que permita ao usuário digitar seu nome, telefone e e-mail;  Método de envio: POST;  Os dados deverão ser submetidos para o script “cadastro.php”;  Salve o documento HTML na pasta sistema com o nome index.html; 44
  • 45. Exercício • Etapa 4 – Criação do script cadastro.php na pasta sistema  O script deverá inicialmente receber os dados submetidos na etapa anterior;  Em seguida, via PDO, o script deverá inserir os dados no banco de dados;  O script deverá redirecionar o usuário para o script lista_usuarios.php; 45
  • 46. Exercício • Etapa 5 – Criação do script lista_usuarios.php na pasta sistema – O script deverá exibir todos os cadastros efetuados até o momento, além de disponibilizar um link que permita ao usuário efetuar um novo cadastro; 46
  • 47. Exercício • Etapa 6 – Testar a aplicação  Abra o navegador de sua preferência e acesse:  http://localhost/sistema ou  http://127.0.0.1/sistema  OBS.: Verifique se o servidor Apache do Xampp está ativo; 47
  • 49. Exercício • Etapa 1 – Preparação do Banco de Dados no phpmyadmin  Utilizaremos a mesma base criada no exercício anterior; 49
  • 50. Exercício • Etapa 2 – Preparação do Domínio  Utilizaremos a pasta sistema criada anteriormente; 50
  • 51. Exercício • Etapa 3 – Criação de um formulário HTML  Utilizaremos o mesmo formulário do exercício anterior; 51
  • 52. Exercício • Etapa 4 – Criação da classe Cadastro.php na pasta sistema 52 Cadastro -nome: string -telefone: string -email: string +setNome(nome: string) : void +setTelefone(telefone: string) : void +setEmail(email: string) : void +getNome() : string +getTelefone() : string +getEmail() : string +inserir() : void +exibir() :void
  • 53. Exercício • Etapa 5 – Atualização do script cadastro.php da pasta sistema  O script deverá:  Receber os dados submetidos na etapa anterior;  Instanciar um objeto da classe Cadastro;  Atribuir os dados recebidos para o objeto instanciado;  Executar o método inserir a partir do objeto instanciado;  Executar o método exibir a partir do objeto instanciado;  Disponibilizar um link que permita ao usuário efetuar um novo cadastro; 53
  • 54. Exercício • Etapa 6 – Testar a aplicação  Abra o navegador de sua preferência e acesse:  http://localhost/sistema ou  http://127.0.0.1/sistema  OBS.: Verifique se o servidor Apache do Xampp está ativo! 54