Вы находитесь на странице: 1из 5

17/03/2018 PHP Class: Como criar minha primeira classe em PHP

Como criar minha primeira classe em


PHP
(29) (0)

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

Herança e interface 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

como essa classe seria implementada em PHP:

Figura 1. Diagrama da classe Produto

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

classe descende da outra e herda suas características e comportamentos, além de implementar

os seus próprios. Por exemplo, considere o diagrama de classes da Figura 2em

que Assinatura herda de Produto .

Figura 2. Diagrama classes com Assinatura herdando de Produto

Nesse cenário a classe Assinatura herda de Produto e também define uma propriedade e método

próprios. Em PHP essa classe seria implementada da seguinte forma:

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

13 $this->dataExpiracao = new \DateTime($dataExpiracao);


14 }
15 public function getTempoRestante()
16 {
17 return $this->dataExpiracao->diff(new \DateTime());
18 }
19 }

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

Na Orientação a Objetos as interfaces funcionam como contratos, ou seja, elas definem

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

mostra uma nova configuração para as classes que representamos anteriormente:

Figura 3. Diagrama de classes com interface

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

essa classe e definir o comportamento desse método.

Em PHP a interface Expiravel seria escrita da seguinte forma:

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

modificado da seguinte forma:

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,

propriedades e métodos específicos.

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 5/5

Вам также может понравиться