Pular para o conteúdo
murad.guide

Aplicações Web

Capítulo 28

Symfony: painel e entrega

2 min de leitura 419 palavras 1 gravura

Neste capítulo você vai listar recados recentes e preparar checklist de entrega PHP. O projeto-fio é o Ateliê Boa Viagem, ateliê digital fictício em Boa Viagem, Recife.

Seu ponto de partida

Use o exemplo 28-symfony-painel do pacote anexo e copie inicio/ para uma pasta de prática fora do original. A raiz do exemplo é a referência completa desta etapa.

Use servidor só em 127.0.0.1 quando o README do exemplo pedir HTTP local. Abrir ou testar não publica nada.

Como praticar

Leia → copie ou digite → mude uma coisa → preveja → salve → recarregue → confira. Restaure cada experiência antes da próxima. Faça as atividades antes de abrir as respostas comentadas.

Mapa visual de Symfony: painel e entrega

Painel simples

Uma página /painel lista os últimos recados. Sem autenticação real complexa neste recorte — aviso de estudo no topo.

Faça na sua cópia

Confira o trecho no contexto do exemplo antes de mudar.

<p role="status">Área de estudo local — não publicar.</p>

Mude uma coisa e preveja

Limite a lista a 10 itens.

Anote o que espera observar antes de salvar e recarregar.

Recarregue e confira

No máximo 10 recados.

Se não acontecer

Query setMaxResults ou slice.

Variáveis de ambiente de estudo

.env.local fica fora do zip público. APP_SECRET de estudo não se reutiliza.

Faça na sua cópia

Confira o trecho no contexto do exemplo antes de mudar.

APP_ENV=dev
APP_SECRET=somente-estudo

Mude uma coisa e preveja

Confira se .env.local está no ignore.

Anote o que espera observar antes de salvar e recarregar.

Recarregue e confira

Não versionar segredo.

Se não acontecer

Veja .gitignore do exemplo.

Encerrar o módulo PHP

Symfony cobre páginas PHP estruturadas. Se a equipe for Python, Django/FastAPI bastam. Não acumule stacks sem necessidade.

Faça na sua cópia

Confira o trecho no contexto do exemplo antes de mudar.

uma stack por problema

Mude uma coisa e preveja

Anote se Symfony entra no seu fechamento.

Anote o que espera observar antes de salvar e recarregar.

Recarregue e confira

Decisão registrada.

Se não acontecer

Volume 32 organiza a escolha.

Atividades

Atividade 1

O painel deste volume é produção?

Atividade 2

Onde não colocar APP_SECRET?

Atividade 3

Precisa aprender Symfony e Django juntos?

Respostas comentadas

Resposta da atividade 1

Não; estudo local.

Resposta da atividade 2

Zip público / repositório aberto.

Resposta da atividade 3

Não; escolha conforme o contexto.

O arquivo completo

Referência do exemplo 28-symfony-painel, reproduzida aqui para que você possa conferir sem sair da página.

public/index.php

<?php
declare(strict_types=1);
session_start();
$recados = array_slice(array_reverse($_SESSION["recados"] ?? [
  ["autor"=>"Lia","mensagem"=>"Oi","criadoEm"=>date("c")],
]), 0, 10);
?><!DOCTYPE html>
<html lang="pt-BR"><head><meta charset="utf-8"><title>Painel</title></head>
<body>
<p role="status">Área de estudo local — não publicar.</p>
<h1>Painel — últimos recados</h1>
<ol><?php foreach ($recados as $r): ?>
<li><?= htmlspecialchars($r["autor"].": ".$r["mensagem"], ENT_QUOTES, "UTF-8") ?></li>
<?php endforeach; ?></ol>
</body></html>