Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com
Sobre esta apres...
OO com PHP Tchelinux 2010 -Porto Alegre
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function setTu...
OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTu...
OO com PHP
NOTA
Mas não podemos sair montando como bem se intende, por ser voltado a
grandes desenvolvimentos, com vários ...
OO com PHP
require_once "Veiculo.php";
$veiculo = new Veiculo();
$veiculo->setTudo('abc','red',1998);
echo $veiculo->getAn...
OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTu...
OO com PHP
VISIBILIDADE
As classes possuem três tipos diferentes de visibilidade em seus métodos e propriedades:
protected...
OO com PHP
CONSTRUTORES E DESTRUTORES
Construtores, são métodos que são chamados automaticamente na hora que uma classe é
...
OO com PHP
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function __construct($placa, $cor, $ano){
$...
OO com PHP
GETS AND SETS
Recomenda-se, deixar as propriedades todas elas com visibilidade private, criando assim
métodos p...
OO com PHP
EXTENSÕES
Extensões de classes, são classes que herdam propriedades e métodos de uma outra já
existente.
class ...
OO com PHP
EXTENSÕES
class Veiculo
{
private $placa;
protected $cor;
Protected $ano;
public function setTudo($placa, $cor,...
OO com PHP
OS DOIS PONTOS DUPLOS
Você deve ter notado no decorrer deste documento, as palavras self e parent. Pois
bem, o ...
Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com
Próximos SlideShares
Carregando em…5
×

Introducao a orientacao a objetos com PHP

328 visualizações

Publicada em

Palestra apresentada no Tchêlinux Porto Alegre em 2010 com os conceitos básicos sobre Orientação a Objetos em PHP.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
328
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
21
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introducao a orientacao a objetos com PHP

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. Tchelinux 2010 – Porto Alegre Introdução a orientação a objetos com PHP Guilherme Mar gfmarster@gmail.com

×