Orientação a Objetos com PHP

A Programação Orientada a Objetos (POO) é um dos paradigmas mais utilizados no desenvolvimento de software moderno. Em PHP, a orientação a objetos permite criar códigos mais organizados, reutilizáveis e fáceis de manter. Neste artigo, vamos entender os principais conceitos da POO em PHP com alguns exemplos práticos e simples.


O que é Programação Orientada a Objetos?

A POO é baseada no conceito de “objetos”, que são instâncias de “classes” representando um objeto do mundo real. Assim como cada objeto real tem suas características e funções cada classe pode conter atributos (propriedades) e métodos (funções).

Benefícios da POO:

  • Modularidade
  • Reutilização de código
  • Facilidade de manutenção
  • Clareza e organização

1. Classes e Objetos

Uma classe é um modelo que define o comportamento e as características de um objeto que será instanciado.

<?php

class Pessoa {

    public $nome;

    public $idade;

    public function apresentar() {

        echo “Olá, meu nome é $this->nome e tenho $this->idade anos.”;

    }

}


// Criando um objeto

$p1 = new Pessoa();

$p1->nome = “Ana”;

$p1->idade = 28;

$p1->apresentar();

Explicação:

  • Pessoa é a classe.
  • $nome e $idade são propriedades.
  • apresentar() é um método.
  • $p1 é um objeto da classe Pessoa.

Desta forma podemos criar nosso objeto tanto dentro do mesmo arquivo quanto em um arquivo externo, para isso devemos nos referir ao arquivo:

//Arquivo 2

<?php

    require __DIR__.“/PrimeiraClasse.php”;

    $p1 = new Pessoa();

    $p1->nome = “Ana”;

    $p1->idade = 28;

    $p1->apresentar();

Lembrando que o nome do arquivo deve ser o mesmo nome da classe criada nele.


2. Encapsulamento

Encapsulamento é o ato de esconder os detalhes internos como variáveis e funções de um objeto e expor apenas o que é necessário.

<?php
class ContaBancaria {
private $saldo = 0;

public function depositar($valor) {
if ($valor > 0) {
$this->saldo += $valor;
}
}

public function verSaldo() {
return $this->saldo;
}
}

$conta = new ContaBancaria();
$conta->depositar(500);
echo “Saldo atual: R$ ” . $conta->verSaldo();

Detalhes:

  • private impede o acesso direto ao atributo independente de onde esteja chamando.
  • protected impede o acesso de outros arquivos que não estejam herdando a classe.
  • public deixa o acesso livre para qualquer arquivo ou objeto.
  • O acesso no exemplo é feito por métodos públicos (getters/setters).

3. Herança

 

A herança permite que uma classe herde propriedades e métodos de outra.

<?php
class Animal {
public function emitirSom() {
echo "Som genérico de animal.";
}
}

class Cachorro extends Animal {
public function emitirSom() {
echo “Latido: au au!”;
}
}

$dog = new Cachorro();
$dog->emitirSom(); // Saída: Latido: au au!

Observações:

  • extends define a herança.
  • Podemos sobrescrever métodos com a mesma assinatura.

4. Polimorfismo

Polimorfismo é a capacidade de um mesmo método ter comportamentos diferentes em classes diferentes.

<?php
function fazerAnimalEmitirSom(Animal $animal) {
$animal->emitirSom();
}

$cachorro = new Cachorro();
$gato = new class extends Animal {
public function emitirSom() {
echo “Miau!”;
}
};

fazerAnimalEmitirSom($cachorro); // Latido: au au!
fazerAnimalEmitirSom($gato); // Miau!


5. Abstração

Abstração permite criar classes genéricas que não podem ser instanciadas diretamente, forçando a implementação de certos métodos nas classes filhas.

<?php abstract class Forma { abstract public function calcularArea(); } class Quadrado extends Forma { private $lado; public function __construct($lado) { $this->lado = $lado; } public function calcularArea() { return $this->lado * $this->lado; } } $q = new Quadrado(4); echo “Área do quadrado: ” . $q->calcularArea();


Outros Conceitos Importantes

  • Interfaces: contratos que as classes devem seguir.
  • Traits: reutilização de código entre classes.
  • Namespace: organização do código em módulos.

Conclusão

A Programação Orientada a Objetos em PHP é uma ferramenta poderosa para criar aplicações bem estruturadas e escaláveis. Neste artigo, você viu os conceitos fundamentais de forma prática e direta. Com a prática, você vai perceber como a POO torna seu código mais claro e sustentável.

Após esta breve explicação, não deixe de conferir a documentação oficial do PHP.


Próximos passos

  • Aprenda sobre interfaces e traits
  • Explore design patterns com PHP
  • Desenvolva um pequeno projeto orientado a objetos, como um sistema de cadastro de usuários

Se você curtiu este conteúdo, acompanhe o blog para mais artigos sobre PHP, boas práticas, frameworks como Laravel, e muito mais!

Últimos Artigos

Deixe sua dúvida ou opinião

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Post anterior
Próximo post

Copyright © 2025 - Pablo Vinícius