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 + } +}