From 927cc1967daf5a11e7d93f322b6db1c2bdb06c07 Mon Sep 17 00:00:00 2001 From: andre Date: Fri, 25 Sep 2026 17:16:10 +0100 Subject: [PATCH] =?UTF-8?q?feat(composer):=20adiciona=20composer.json=20e?= =?UTF-8?q?=20liga=20o=20Composer=20=C3=A0=20imagem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .gitignore | 12 +++++++++--- composer.json | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 composer.json diff --git a/.gitignore b/.gitignore index df0e4a2..f9d3e4f 100644 --- a/.gitignore +++ b/.gitignore @@ -59,9 +59,15 @@ Thumbs.db .claude/ # ─── Dependências ─────────────────────────────────────────────────────────── -# vendor/ ESTÁ versionado de propósito: não há Composer nesta app e o -# PHPMailer foi copiado à mão (vendor/PHPMailer). Quando houver composer.json, -# acrescentar aqui "vendor/" e retirá-lo do índice. +# vendor/ é output do composer install, exceto vendor/PHPMailer: o +# platform-tools partilhado (functions_mail.php) já espera esse caminho por +# require_once, igual em toda a frota — composer install criaria uma segunda +# árvore paralela (vendor/phpmailer/phpmailer/) que nada usa por si, mas fica +# para o botão "Atualizar dependências" do backoffice e para composer audit. +# composer.lock FICA versionado (fixa o que um deploy instala). +/vendor/* +!/vendor/PHPMailer/ +!/vendor/PHPMailer/** node_modules/ # ─── Lixo de editores / temporários ───────────────────────────────────────── diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..b95cf23 --- /dev/null +++ b/composer.json @@ -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 + } +}