Академический Документы
Профессиональный Документы
Культура Документы
Neste conteúdo você aprenderá a criar sua primeira classe (PHP Class) na linguagem PHP.
Aprenda também a usar herança e interfaces, bem como métodos, atributos e propriedades.
Ir para o código
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 1/5
17/03/2018 PHP Class: Como criar minha primeira classe em PHP
A definição de classes na linguagem PHP é feita com uma sintaxe simples, de fácil compreensão
e nos permite criar atributos, propriedades e métodos. Por exemplo, na Figura 1 temos a
representação de uma classe chamada Produto com seus campos e logo em seguida vemos
1 <?php
2
3 class Produto {
4
5 private $codigo;
6 private $nome;
7 private $preco;
8
9 public function getCodigo()
10 {
11 return $this->codigo;
12 }
13 public function setCodigo($codigo)
14 {
15 $this->codigo = $codigo;
16 }
17 public function getNome()
18 {
19 return $this->nome;
20 }
21 public function setNome($nome)
22 {
23 $this->nome = $nome;
24 }
25 public function getPreco()
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 2/5
17/03/2018 PHP Class: Como criar minha primeira classe em PHP
26 {
27 return $this->preco;
28 }
29 public function setPreco($preco)
30 {
31 $this->preco = $preco;
32 }
33 }
Linha 3: Nessa linha temos os seguintes termos: class define que estamos criando uma classe; e Produto, que é o nome
da classe.
Linhas 5 a 7: Aqui temos o que chamamos de atributos. São variáveis privadas que representam as características da classe.
Note o modificador de acesso private , o tipo e o nome de cada atributo;
Linhas 9 a 33: Já aqui temos as propriedades da classe (também chamadas de getters e setters), que são públicas e
encapsulam os atributos. Observe que criamos um método para modificar os valores e outro para retornar. O get retorna o
atributo correspondente e o set recebe um valor e o repassa para o atributo.
Herança
Herança é um tipo de relacionamento muito comum na orientação a objetos e ocorre quando uma
Nesse cenário a classe Assinatura herda de Produto e também define uma propriedade e método
1 <?php
2
3 class Assinatura extends Produto {
4
5 private $dataExpiracao;
6
7 public function getDataExpiracao()
8 {
9 return $this->dataExpiracao;
10 }
11 public function setDataExpiracao($dataExpiracao)
12 {
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 3/5
17/03/2018 PHP Class: Como criar minha primeira classe em PHP
Linha 2: A herança em PHP é representada pela palavra reservada extends , seguida do nome da classe que está sendo
herdada. Nesse caso, Assinatura herda de Produto ;
Linhas 6 a 14: Nesse trecho temos o atributo e propriedade que dizem respeito apenas à assinatura;
Linhas 8 a 11: Aqui temos o método getTempoRestante da assinatura, que retorna um DateInterval representando o tempo
que falta até a assinatura expirar;
Interfaces
comportamentos que devem ser cumpridos pelas classes. Quando uma classe atende a uma
interface, dizemos que ela implementa essa interface. Na Figura 3 temos um diagrama que
Nesse cenário a interface Expiravel define que toda classe que representa um produto cuja data
de expiração ou validade chega ao fim (expira) deve implementar o método getTempoRestante . Por
exemplo, se tivéssemos outra classe Voucher ou Desconto , por exemplo, ela poderia implementar
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 4/5
17/03/2018 PHP Class: Como criar minha primeira classe em PHP
1 <?php
2
3 interface Expiravel
4 {
5 public function getTempoRestante();
6 }
Linha 3: Note o uso da palavra reservada interface e também no nome da interface: Expiravel .
Linha 5: As interfaces definem apenas a assinatura do método, não seu comportamento. A implementação do método fica por
conta da classe que implementa essa interface.
Agora, considerando que a classe Assinatura implementa essa interface, seu código seria
1 <?php
2
3 class Assinatura extends Produto implements Expiravel {
4
5 private $dataExpiracao;
6
7 public function getDataExpiracao()
8 {
9 return $this->dataExpiracao;
10 }
11 public function setDataExpiracao($dataExpiracao)
12 {
13 $this->dataExpiracao = new \DateTime($dataExpiracao);
14 }
15 public function getTempoRestante()
16 {
17 return $this->dataExpiracao->diff(new \DateTime());
18 }
19 }
Linha 3: A sintaxe para implementar uma interface em PHP é a palavra reservada implements e em seguida o nome da
Interface;
Linhas 5 a 18: Como a classe implementa a interface Expiravel , ela deve obrigatoriamente definir o comportamento do
método getTempoRestante .
A partir desses conceitos podemos criar diversas outras classes e interfaces, com seus atributos,
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 5/5