feat(composer): adiciona composer.json e liga o Composer à imagem

Auditoria 6.5/7.1: sem Composer nem composer.json. Segue exatamente o
que a fotografia já faz (mesma imagem base, mesmo Dockerfile) — a
frota não converte o código próprio para classes com namespace (nem
lá isso existe), o composer.json serve para declarar PHP/extensões e
dependências, e para o botão "Atualizar dependências" do backoffice.

vendor/PHPMailer continua hand-vendored e é o que o functions_mail.php
partilhado espera por caminho fixo (vendor/PHPMailer/src/...) — mudar
isso é código partilhado, fora do alcance de uma app só. composer
install vai criar vendor/phpmailer/phpmailer/ em paralelo (igual à
fotografia, "harmless but useless" no comentário do Dockerfile deles).

.gitignore: vendor/ passa a gitignored exceto vendor/PHPMailer/
(allowlist, como o fpdf da fotografia); composer.lock fica versionado.

Dockerfile em /srv/stacks/fitme.andmore.pt/ (fora deste repo) ganhou o
binário do composer:2 e unzip — próximo passo é rebuild da imagem.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
andreandClaude Sonnet 5 committed 2026-09-25 17:16:10 +01:00
1 parent df1aad8769
commit 927cc1967d
2 files changed
+31 -3

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
{
"name": "andmore/fitme3070",
"description": "FitMe 3070 — site público + backoffice de ginásio (PHP simples, sem framework, sem build step).",
"type": "project",
"license": "proprietary",
"require": {
"php": ">=8.4",
"ext-pdo": "*",
"ext-pdo_mysql": "*",
"ext-mbstring": "*",
"ext-gd": "*",
"ext-curl": "*",
"ext-json": "*",
"ext-zip": "*",
"ext-intl": "*",
"phpmailer/phpmailer": "^7.1"
},
"config": {
"vendor-dir": "vendor",
"optimize-autoloader": true
}
}