Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO
Instruções Gerais:
- Resolva as atividades em ordem progressiva de maturidade.
- Cada nível adiciona requisitos técnicos, tratamento de erros e casos de borda reais.
- Consulte o gabarito comentado ao final de cada questão para autoavaliação.
🎯 Nível 1: Fundamentos
Problema 15.1 — Tipagem Estrita (declare(strict_types=1)) e Construtores Promovidos
Contexto: Tipagem Estrita (declare(strict_types=1)) e Construtores Promovidos no contexto de Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO.
Requisitos de Execução:
- Criar classe com Constructor Property Promotion no PHP 8.
Resultado Esperado
Classe PHP 8 instanciada com tipagem estrita de propriedades.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_15_1_SeuNome - Envie na tarefa:
Atividade Cap 15 - Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO
🔑 Gabarito de Código & Solução Comentada
<?php
declare(strict_types=1);
class Usuario {
public function __construct(
public readonly int $id,
public readonly string $nome,
public readonly string $email
) {}
}
$u = new Usuario(1, "Ricardo", "ricardo@empresa.com");
echo "Usuario PHP 8: {$u->nome} ({$u->email})
";
🔍 Nível 2: Prática
Problema 15.2 — Expressão Match e Operador Nullsafe (?->)
Contexto: Expressão Match e Operador Nullsafe (?->) no contexto de Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO.
Requisitos de Execução:
- Mapear códigos de status HTTP para mensagens com expressão
matche acessar propriedades nulas com?->.
Resultado Esperado
Sintaxe moderna PHP 8 processando estados com segurança.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_15_2_SeuNome - Envie na tarefa:
Atividade Cap 15 - Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO
🔑 Gabarito de Código & Solução Comentada
<?php
declare(strict_types=1);
function obterMensagemStatus(int $codigo): string {
return match ($codigo) {
200 => "OK - Sucesso",
404 => "Not Found - Nao Encontrado",
500 => "Internal Server Error",
default => "Status Desconhecido"
};
}
echo obterMensagemStatus(200) . "
";
⚡ Nível 3: Integração
Problema 15.3 — PDO Seguro com Prepared Statements e Transações
Contexto: PDO Seguro com Prepared Statements e Transações no contexto de Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO.
Requisitos de Execução:
- Conectar ao SQLite via PDO executando inserções parametrizadas dentro de bloco de transação.
Resultado Esperado
Operações de banco de dados no PHP blindadas contra SQL Injection.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_15_3_SeuNome - Envie na tarefa:
Atividade Cap 15 - Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO
🔑 Gabarito de Código & Solução Comentada
<?php
declare(strict_types=1);
$pdo = new PDO("sqlite::memory:");
$pdo->exec("CREATE TABLE contas (id INT, saldo REAL)");
$stmt = $pdo->prepare("INSERT INTO contas VALUES (?, ?)");
$stmt->execute([1, 5000.0]);
echo "Transacao PDO executada com sucesso.
";
🏆 Nível 4: Desafio Corporativo
Problema 15.4 — Criação de Middleware de Autenticação PSR-15
Contexto: Criação de Middleware de Autenticação PSR-15 no contexto de Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO.
Requisitos de Execução:
- Implementar interface de middleware interceptando requisições e validando token de autorização.
Resultado Esperado
Padrão PSR-15 homologado para frameworks modernos (Laravel / Symfony).
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_15_4_SeuNome - Envie na tarefa:
Atividade Cap 15 - Linguagem PHP: PHP 8 Moderno, Tipagem Estrita e POO
🔑 Gabarito de Código & Solução Comentada
<?php
declare(strict_types=1);
interface MiddlewareInterface {
public function processar(array $request): bool;
}
class AuthMiddleware implements MiddlewareInterface {
public function processar(array $request): bool {
return isset($request['token']) && $request['token'] === 'SECRET_123';
}
}
$m = new AuthMiddleware();
echo "Acesso autorizado: " . ($m->processar(['token' => 'SECRET_123']) ? 'SIM' : 'NAO') . "
";