SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com
Sobre esta apresentação:
- Nível:
Iniciante / Intermediário
- Escopo:
Iniciando com Orientação a objetos, vendo principais características
- Pré-requisitos:
Lógica, básico em PHP e vontade de aprender.
OO com PHP Tchelinux 2010 -Porto Alegre
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
ESTRUTURA
OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
ESTRUTURA
Propriedades
São as nossas conhecidas
variáveis, que dentro de uma classe
passa a ser chamada de propriedade
Métodos
São funções, onde é colocada toda
regra de negocio da classe
Lembrando que não se coloca lógica
solta na classe, apenas dentro de
métodos (funções)
Tchelinux 2010 -Porto Alegre
OO com PHP
NOTA
Mas não podemos sair montando como bem se intende, por ser voltado a
grandes desenvolvimentos, com vários programadores, recomenda-se o uso de
alguns padrões:
Por convenção usa-se a primeira letra maiúscula, e em caso de haver troca de
palavra segue o padrão “camel case” ( corcova de camelo ). Ex.:
LivroVisitas TesteMemoria Carro Moto ContatoEmpresa
Nome de classe com primeira letra maiúscula
Nome de métodos com a primeira letra minuscula
Utiliza-se o padrão “camel case” ( corcova de camelo ), mas com a primeira letra
minuscula Ex.:
adcionarContato visualizarDisco adicionar
Arquivos com o mesmo nome da classe
Recomenda colocar uma classe por arquivo e este arquivo possuir o mesmo nome da
classe, respeitando inclusive letras maiúsculas e minusculas.
Tchelinux 2010 -Porto Alegre
OO com PHP
require_once "Veiculo.php";
$veiculo = new Veiculo();
$veiculo->setTudo('abc','red',1998);
echo $veiculo->getAno();
echo “<br>”
echo $veiculo->cor;
INSTANCIANDO UM CLASSE
Deve ser feito um include
do arquivo da classe
new responsável por criar uma instancia da classe na variável.
-> modo de acessar as propriedades ou métodos da classe.
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
Tchelinux 2010 -Porto Alegre
OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
A PALAVRA RESERVADA THIS
O this, que no caso é tratado como
uma variável ( note o $ junto dele ) é
utilizado para acessar propriedades e
métodos que são da própria classe.
Repare o método setTudo.
Tchelinux 2010 -Porto Alegre
OO com PHP
VISIBILIDADE
As classes possuem três tipos diferentes de visibilidade em seus métodos e propriedades:
protected
Este é o padrão, permite a propriedade ou método ser acessada por qualquer um no
desenvolvimento.
public
Restringe o acesso a classes herdadas e a própria classe.
private
Apenas a própria classe enxerga os métodos e propriedades com este tipo de visibilidade.
Tchelinux 2010 -Porto Alegre
OO com PHP
CONSTRUTORES E DESTRUTORES
Construtores, são métodos que são chamados automaticamente na hora que uma classe é
instanciada.
No PHP um construtor se chama utilizando o método __construct()
public function __construct()
{
/* regra de negócio */
}
Destrutores, são métodos que são chamados automaticamente na hora que uma classe é
encerrada, sendo no PHP um destrutor muito pouco utilizado.
No PHP um destrutor se chama utilizando o método __destruct()
public function __destruct()
{
/* regra de negocio */
}
Nota: Antes do PHP 5, o construtor era um método com o mesmo nome da classe, sendo
este modelo suportado até versões novas. Mas não é recomendado seu uso, apenas em caso
de servidores que não suportem PHP5.
Tchelinux 2010 -Porto Alegre
OO com PHP
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function __construct($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function __destruct(){
echo “Classe destruida”;
}
}
CONSTRUTORES E DESTRUTORES
require_once "classes/Veiculo.php";
$carro = new Veiculo("IGV-2009", "vermelho");
Nota: Métodos __construct e __destruct devem sempre possuir a visibilidade do tipo
public, caso contrário irá ocorrer erro.
Tchelinux 2010 -Porto Alegre
OO com PHP
GETS AND SETS
Recomenda-se, deixar as propriedades todas elas com visibilidade private, criando assim
métodos para popular e recuperar a propriedade. Métodos esses chamados de set e get.
class Veiculo
{
private $placa;
private $cor;
Private $ano;
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
public function setCor($cor){
$this->cor = $cor;
}
public function getCor(){
return $this->cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
require_once "Veiculo.php";
$veiculo = new Veiculo();
$veiculo->setAno(1982);
$veiculo->setCor("Preto");
$veiculo->setPlaca("TLX-2009");
echo $carro->getAno();
echo $carro->getCor();
echo $carro->getPlaca();
Tchelinux 2010 -Porto Alegre
OO com PHP
EXTENSÕES
Extensões de classes, são classes que herdam propriedades e métodos de uma outra já
existente.
class Veiculo
{
private $placa;
protected $cor;
Protected $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
/* ... */
}
require_once "Veiculo.php";
class Carro extends veiculo
{
private $qtdCintos;
public function setTudo($placa, $cor,
$ano, $qtdCintos){
parent::setTudo($placa, $cor, $ano);
$this->setCintos($qtdCintos);
}
public function setCintos($qtdCintos){
$this->qtdCintos = $qtdCintos;
}
public function getCintos(){
return $this->qtdCintos;
}
}
Tchelinux 2010 -Porto Alegre
OO com PHP
EXTENSÕES
class Veiculo
{
private $placa;
protected $cor;
Protected $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
/* ... */
}
require_once "Veiculo.php";
class Carro extends veiculo
{
private $qtdCintos;
public function setTudo($placa, $cor,
$ano, $qtdCintos){
parent::setTudo($placa, $cor, ano);
$this->setCintos($qtdCintos);
}
public function setCintos($qtdCintos){
$this->qtdCintos = $qtdCintos;
}
public function getCintos(){
return $this->qtdCintos;
}
}
require_once "classes/Carro.php";
$carro = new Carro();
$carro->setTudo("IGV-2009","amarelo", 2009, 5);
echo $carro->getPlaca(); // IGV-2009
echo $carro->getCor(); // amarelo
echo $carro->getAno(); // 2009
echo $carro->getCintos(); // 5
Tchelinux 2010 -Porto Alegre
OO com PHP
OS DOIS PONTOS DUPLOS
Você deve ter notado no decorrer deste documento, as palavras self e parent. Pois
bem, o self é utilizado para acessas constantes ( lembra do const ?? ) na própria
classe. Enquanto o parent é utilizado em classes estendidas para acessarem
constantes e métodos na classe pai que foram sobrescritos pela classe filha.
Com self e parent não se pode utilizar “->” e sim :: como visto no decorrer do
documento. O mesmo para quando se deseja acessar algum método ou constante
de uma classe sem instancia-la Se utiliza o nome da classe, seguida dos dois pontos
duplos e depois o método ou constante desejada.
Tchelinux 2010 -Porto Alegre
Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com

Mais conteúdo relacionado

Mais procurados

Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Bianca Dantas
 
Introdução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãoIntrodução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãogbpf
 
Introdução ao php - Tipos de Operadores
Introdução ao php - Tipos de OperadoresIntrodução ao php - Tipos de Operadores
Introdução ao php - Tipos de Operadoresgbpf
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01thomasdacosta
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Introdução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisIntrodução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisgbpf
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fontethomasdacosta
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portuguesLaura
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Alamo Saravali
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
 
Pesquisa tipos de entrada de dados php
Pesquisa tipos de entrada de dados phpPesquisa tipos de entrada de dados php
Pesquisa tipos de entrada de dados phpWesley Germano Otávio
 

Mais procurados (20)

Internacionalizacao
InternacionalizacaoInternacionalizacao
Internacionalizacao
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Introdução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãoIntrodução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetição
 
Introdução ao php - Tipos de Operadores
Introdução ao php - Tipos de OperadoresIntrodução ao php - Tipos de Operadores
Introdução ao php - Tipos de Operadores
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Introdução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisIntrodução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveis
 
Slides
SlidesSlides
Slides
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Exercícios PL/SQL
Exercícios PL/SQLExercícios PL/SQL
Exercícios PL/SQL
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 
Pesquisa tipos de entrada de dados php
Pesquisa tipos de entrada de dados phpPesquisa tipos de entrada de dados php
Pesquisa tipos de entrada de dados php
 

Semelhante a Introducao a orientacao a objetos com PHP

PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5garux
 
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 1Israel Messias
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraFlávio Lisboa
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)Pablo Dall'Oglio
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPRafael Neris
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3Jose Berardo
 
Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Douglas V. Pasqua
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaJonata Weber
 
DevTalk Zoox 04/2016
DevTalk Zoox 04/2016DevTalk Zoox 04/2016
DevTalk Zoox 04/2016Leandro Silva
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
Orientação a Objetos em PHP
Orientação a Objetos em PHPOrientação a Objetos em PHP
Orientação a Objetos em PHPzehzinho
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHPAugusto das Neves
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07Yuri Bispo
 

Semelhante a Introducao a orientacao a objetos com PHP (20)

Aula5
Aula5Aula5
Aula5
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Solid
SolidSolid
Solid
 
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
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHP
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3
 
Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
 
Php FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHPPhp FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHP
 
DevTalk Zoox 04/2016
DevTalk Zoox 04/2016DevTalk Zoox 04/2016
DevTalk Zoox 04/2016
 
Php
PhpPhp
Php
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Orientação a Objetos em PHP
Orientação a Objetos em PHPOrientação a Objetos em PHP
Orientação a Objetos em PHP
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07
 

Introducao a orientacao a objetos com PHP

  • 1. Tchelinux 2010 – Porto Alegre Introdução a orientação a objetos com PHP Guilherme Mar gfmarster@gmail.com Sobre esta apresentação: - Nível: Iniciante / Intermediário - Escopo: Iniciando com Orientação a objetos, vendo principais características - Pré-requisitos: Lógica, básico em PHP e vontade de aprender.
  • 2. OO com PHP Tchelinux 2010 -Porto Alegre class Veiculo { public $placa; protected $cor; private $ano; public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setAno($ano){ $this->ano = $ano; } public function getAno(){ return $this->ano; } } ESTRUTURA
  • 3. OO com PHP class Veiculo { /* Propriedades */ public $placa; public $cor; Public $ano; /* Métodos */ public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setAno($ano){ $this->ano = $ano; } public function getAno(){ return $this->ano; } } ESTRUTURA Propriedades São as nossas conhecidas variáveis, que dentro de uma classe passa a ser chamada de propriedade Métodos São funções, onde é colocada toda regra de negocio da classe Lembrando que não se coloca lógica solta na classe, apenas dentro de métodos (funções) Tchelinux 2010 -Porto Alegre
  • 4. OO com PHP NOTA Mas não podemos sair montando como bem se intende, por ser voltado a grandes desenvolvimentos, com vários programadores, recomenda-se o uso de alguns padrões: Por convenção usa-se a primeira letra maiúscula, e em caso de haver troca de palavra segue o padrão “camel case” ( corcova de camelo ). Ex.: LivroVisitas TesteMemoria Carro Moto ContatoEmpresa Nome de classe com primeira letra maiúscula Nome de métodos com a primeira letra minuscula Utiliza-se o padrão “camel case” ( corcova de camelo ), mas com a primeira letra minuscula Ex.: adcionarContato visualizarDisco adicionar Arquivos com o mesmo nome da classe Recomenda colocar uma classe por arquivo e este arquivo possuir o mesmo nome da classe, respeitando inclusive letras maiúsculas e minusculas. Tchelinux 2010 -Porto Alegre
  • 5. OO com PHP require_once "Veiculo.php"; $veiculo = new Veiculo(); $veiculo->setTudo('abc','red',1998); echo $veiculo->getAno(); echo “<br>” echo $veiculo->cor; INSTANCIANDO UM CLASSE Deve ser feito um include do arquivo da classe new responsável por criar uma instancia da classe na variável. -> modo de acessar as propriedades ou métodos da classe. class Veiculo { /* Propriedades */ public $placa; public $cor; Public $ano; /* Métodos */ public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setAno($ano){ $this->ano = $ano; } public function getAno(){ return $this->ano; } } Tchelinux 2010 -Porto Alegre
  • 6. OO com PHP class Veiculo { /* Propriedades */ public $placa; public $cor; Public $ano; /* Métodos */ public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setAno($ano){ $this->ano = $ano; } public function getAno(){ return $this->ano; } } A PALAVRA RESERVADA THIS O this, que no caso é tratado como uma variável ( note o $ junto dele ) é utilizado para acessar propriedades e métodos que são da própria classe. Repare o método setTudo. Tchelinux 2010 -Porto Alegre
  • 7. OO com PHP VISIBILIDADE As classes possuem três tipos diferentes de visibilidade em seus métodos e propriedades: protected Este é o padrão, permite a propriedade ou método ser acessada por qualquer um no desenvolvimento. public Restringe o acesso a classes herdadas e a própria classe. private Apenas a própria classe enxerga os métodos e propriedades com este tipo de visibilidade. Tchelinux 2010 -Porto Alegre
  • 8. OO com PHP CONSTRUTORES E DESTRUTORES Construtores, são métodos que são chamados automaticamente na hora que uma classe é instanciada. No PHP um construtor se chama utilizando o método __construct() public function __construct() { /* regra de negócio */ } Destrutores, são métodos que são chamados automaticamente na hora que uma classe é encerrada, sendo no PHP um destrutor muito pouco utilizado. No PHP um destrutor se chama utilizando o método __destruct() public function __destruct() { /* regra de negocio */ } Nota: Antes do PHP 5, o construtor era um método com o mesmo nome da classe, sendo este modelo suportado até versões novas. Mas não é recomendado seu uso, apenas em caso de servidores que não suportem PHP5. Tchelinux 2010 -Porto Alegre
  • 9. OO com PHP class Veiculo { public $placa; protected $cor; private $ano; public function __construct($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function __destruct(){ echo “Classe destruida”; } } CONSTRUTORES E DESTRUTORES require_once "classes/Veiculo.php"; $carro = new Veiculo("IGV-2009", "vermelho"); Nota: Métodos __construct e __destruct devem sempre possuir a visibilidade do tipo public, caso contrário irá ocorrer erro. Tchelinux 2010 -Porto Alegre
  • 10. OO com PHP GETS AND SETS Recomenda-se, deixar as propriedades todas elas com visibilidade private, criando assim métodos para popular e recuperar a propriedade. Métodos esses chamados de set e get. class Veiculo { private $placa; private $cor; Private $ano; public function setPlaca($placa){ $this->placa = $placa; } public function getPlaca(){ return $this->placa; } public function setCor($cor){ $this->cor = $cor; } public function getCor(){ return $this->cor; } public function setAno($ano){ $this->ano = $ano; } public function getAno(){ return $this->ano; } } require_once "Veiculo.php"; $veiculo = new Veiculo(); $veiculo->setAno(1982); $veiculo->setCor("Preto"); $veiculo->setPlaca("TLX-2009"); echo $carro->getAno(); echo $carro->getCor(); echo $carro->getPlaca(); Tchelinux 2010 -Porto Alegre
  • 11. OO com PHP EXTENSÕES Extensões de classes, são classes que herdam propriedades e métodos de uma outra já existente. class Veiculo { private $placa; protected $cor; Protected $ano; public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setPlaca($placa){ $this->placa = $placa; } public function getPlaca(){ return $this->placa; } /* ... */ } require_once "Veiculo.php"; class Carro extends veiculo { private $qtdCintos; public function setTudo($placa, $cor, $ano, $qtdCintos){ parent::setTudo($placa, $cor, $ano); $this->setCintos($qtdCintos); } public function setCintos($qtdCintos){ $this->qtdCintos = $qtdCintos; } public function getCintos(){ return $this->qtdCintos; } } Tchelinux 2010 -Porto Alegre
  • 12. OO com PHP EXTENSÕES class Veiculo { private $placa; protected $cor; Protected $ano; public function setTudo($placa, $cor, $ano){ $this->placa = $placa; $this->ano = $ano; $this->cor = $cor; } public function setPlaca($placa){ $this->placa = $placa; } public function getPlaca(){ return $this->placa; } /* ... */ } require_once "Veiculo.php"; class Carro extends veiculo { private $qtdCintos; public function setTudo($placa, $cor, $ano, $qtdCintos){ parent::setTudo($placa, $cor, ano); $this->setCintos($qtdCintos); } public function setCintos($qtdCintos){ $this->qtdCintos = $qtdCintos; } public function getCintos(){ return $this->qtdCintos; } } require_once "classes/Carro.php"; $carro = new Carro(); $carro->setTudo("IGV-2009","amarelo", 2009, 5); echo $carro->getPlaca(); // IGV-2009 echo $carro->getCor(); // amarelo echo $carro->getAno(); // 2009 echo $carro->getCintos(); // 5 Tchelinux 2010 -Porto Alegre
  • 13. OO com PHP OS DOIS PONTOS DUPLOS Você deve ter notado no decorrer deste documento, as palavras self e parent. Pois bem, o self é utilizado para acessas constantes ( lembra do const ?? ) na própria classe. Enquanto o parent é utilizado em classes estendidas para acessarem constantes e métodos na classe pai que foram sobrescritos pela classe filha. Com self e parent não se pode utilizar “->” e sim :: como visto no decorrer do documento. O mesmo para quando se deseja acessar algum método ou constante de uma classe sem instancia-la Se utiliza o nome da classe, seguida dos dois pontos duplos e depois o método ou constante desejada. Tchelinux 2010 -Porto Alegre
  • 14. Tchelinux 2010 – Porto Alegre Introdução a orientação a objetos com PHP Guilherme Mar gfmarster@gmail.com