🚀 Capítulo 10: Construindo a Armadura (Tema: Stark)

NOTE

Este capítulo utiliza a temática de Tony Stark (Homem de Ferro) para explicar a Introdução à Programação Orientada a Objetos (POO) em PHP. Aprenda a criar moldes e construir objetos incríveis!


1. 🎯 Objetivo da Aula

Compreender os conceitos básicos de Programação Orientada a Objetos (POO) em PHP: o que são Classes, Objetos, Atributos (variáveis) e Métodos (funções), além do método construtor.

2. 🏢 O Cenário Prático (Seu Desafio)

O gênio, bilionário, playboy e filantropo Tony Stark não constrói suas armaduras de qualquer jeito. Ele primeiro desenha um projeto no computador (a planta, o molde). Esse projeto diz quais peças a armadura terá (propulsores, inteligência artificial) e o que ela será capaz de fazer (voar, atirar laser). A partir desse projeto único, ele pode construir várias armaduras físicas reais: a Mark 1, a Mark 2, a Hulkbuster, etc.

Na POO:

  • O projeto no computador é a Classe.
  • A armadura física construída é o Objeto. Seu desafio é criar o molde da sua armadura!

🧠 Fundamentos: A Teoria Traduzida

📐 1. Criando a Classe (O Molde):

Usamos a palavra class. Dentro dela colocamos as variáveis (chamadas de Atributos) e as funções (chamadas de Métodos).

class Armadura {
    // Atributos (Propriedades)
    public $nome;
    public $cor;
 
    // Método (Ação)
    public function voar() {
        echo $this->nome . " está voando pelos céus!\n";
    }
}

Nota: A palavra $this serve para a classe falar de si mesma. Significa: “Pegue o nome DESTA armadura”.

🏗️ 2. Construindo o Objeto (Instanciação):

Para criar um objeto real a partir do molde, usamos a palavra-chave new.

$mark5 = new Armadura();
$mark5->nome = "Mark V";
$mark5->cor = "Vermelha e Prata";
 
$mark5->voar(); // Chama o método

Atenção: Em PHP, para acessar as coisas dentro de um objeto, não usamos o ponto ., usamos a setinha ->!


4. 📖 Exemplo Guiado: O Construtor Mágico

Para não precisarmos preencher o nome e a cor linha por linha, podemos usar um método especial chamado Construtor (__construct). Ele roda sozinho assim que criamos o objeto!

<?php
class Armadura {
    public $nome;
    public $cor;
 
    // O Construtor recebe os dados na criação
    public function __construct($nomeRecibido, $corRecebida) {
        $this->nome = $nomeRecibido;
        $this->cor = $corRecebida;
    }
 
    public function status() {
        echo $this->nome . " está pronta na cor " . $this->cor . ".\n";
    }
}
 
// Criando o objeto e passando os dados direto no parênteses!
$hulkbuster = new Armadura("Hulkbuster", "Vermelha");
$hulkbuster->status();
?>

5. 🛠️ Prática Obrigatória 1: Criando o Molde

  1. Escreva o código de uma classe chamada Heroi com dois atributos públicos: $nome e $poder.

6. 🛠️ Prática Obrigatória 2: Fabricando o Objeto

  1. Escreva o código que cria um objeto a partir da classe Heroi (usando o new) e guarda na variável $novoHeroi.

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 10 PHP_Stark) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

spec_backend_com_php_e_laravel/
├── capitulos/
│   └── capitulo_10_stark.md

💡 Checkpoint de Lógica

Em PHP, as funções especiais que começam com dois underlines (como __construct) são chamadas de Métodos Mágicos. Existem vários outros para situações diferentes!

10. 🔥 Desafio de Fixação

Pesquise o que significa a palavra public antes das variáveis na classe e qual a diferença para as palavras private e protected.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

class Heroi {
    public $nome;
    public $poder;
}

Gabarito da Prática 2:

$novoHeroi = new Heroi();

Capitulo Anterior | Proximo Capitulo