Repository navigation
Conversation
- Dockerfile multi-stage : frankenphp_base, frankenphp_prod (port 8080, utilisateur app, php.ini-production, healthcheck) et frankenphp_dev (ciblé par compose.yaml) - docker-entrypoint.sh : attend la base de données avant FrankenPHP - ConfigCore::loadEnv() : .env et .env.local optionnels, lecture de l'environnement du processus, déduction des DB_* depuis DATABASE_URL - commande make:deploy : génère frankendeploy.yaml - doc « Déployer son application », changelog v2.9.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 31 |
| Duplication | 0 |
🟢 Coverage 98.41% diff coverage · +0.93% coverage variation
Metric Results Coverage variation ✅ +0.93% coverage variation (-1.00%) Diff coverage ✅ 98.41% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (a03a99b) 1965 1640 83.46% Head commit (222a6f3) 2082 (+117) 1757 (+117) 84.39% (+0.93%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#169) 126 124 98.41% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| PHP | Oct 21, 2026 8:37a.m. | Review ↗ | |
| Shell | Oct 21, 2026 8:37a.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
…ure) Codacy : - docker-entrypoint.sh : SC2016 désactivé (code PHP volontairement entre guillemets simples) - ConfigCore : lecture/écriture des variables via le dépôt phpdotenv (plus d'accès direct à $_ENV), loadDatabaseUrl simplifiée - CreateDeployCommand : $io renommé $console Relecture : - loadEnv : une variable visible uniquement par getenv() (php -S, mod_php) reste prioritaire sur .env et .env.local - DATABASE_URL MySQL/MariaDB/PostgreSQL mal formée (ex. mot de passe avec # tronqué par phpdotenv) : ErrorConfigException explicite, et arrêt du conteneur au démarrage avec le message - tests : APP_ENV hérité du shell ou du conteneur neutralisé dans bootstrap - make:deploy : --name requis dans le conteneur (/app), commandes SQLite une variable par commande, avertissement qui indique où récupérer les fichiers Docker, healthcheck à aligner avec le Dockerfile - doc : projets créés avant 2.9.0, caractère #, env set une variable, DATABASE_URL d'une base gérée, procédure d'import corrigée, SQLite, ne pas lancer frankendeploy build / init --force / dev Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- dossiers temporaires des tests créés en 0700 au lieu de 0777 (PHP-A1006) - docblocks des méthodes et classes ajoutées (PHP-D1001, PHP-D1002) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Résumé
Permet de déployer une application Edu-Framework sur un VPS Debian 12+ / Ubuntu 22.04+ avec FrankenDeploy (HTTPS Let's Encrypt, base MariaDB gérée, déploiement sans coupure, rollback).
FrankenDeploy est pensé pour Symfony : cette PR rend le framework compatible sans fork de l'outil.
Changements
frankenphp_base,frankenphp_prod(contrat FrankenDeploy : HTTP sur le port 8080, utilisateur non-rootapp,php.ini-production, OPcache sans revalidation, sessions dansvar/sessions, healthcheck, sans Excimer) etfrankenphp_dev(ciblé explicitement parcompose.yaml, le dev local ne change pas)docker-entrypoint.sh: attend la base de données avant de démarrer FrankenPHP. Doit rester dans le projet, sinon FrankenDeploy génère sa version Symfony (bin/console), qui casse le buildConfigCore::loadEnv()utilisée par l'app etbin/edu:.envet.env.localoptionnels,.env.localprioritairegetEnv()/existEnv()lisent aussi l'environnement du processus (variables Docker absentes de$_ENVavecphp.ini-production)DB_*manquantes sont déduites deDATABASE_URL(injectée par FrankenDeploy)getEnv()ne lève plus d'avertissement pour une variable absente,bin/edudémarre sans.envphp bin/edu make:deploy: génèrefrankendeploy.yaml(--domain,--name,--database=mariadb|mysql|sqlite|none,--force) avec les dossiers partagés (.env.local,var/logs,var/sessions,var/sqlite,public/upload)command-edu.mdetdocker.mdeduframe.ymlTests
LoadEnvTest,CreateDeployCommandTest) passent ; les 5 erreurs restantes sont préexistantes (MySQL local non démarré, base SQLite verrouillée)frankenphp_prod+ MariaDB 11 sur un réseau dédié,DATABASE_URLinjectée,.env.localen lecture seule, dossiers partagés → conteneurhealthy, HTTP 200, connexion MariaDB OK, barre de debug absente, sessions et logs écrits dans les dossiers partagésfrankenphp_devconstruite,docker compose configcible bienfrankenphp_devfrankendeploy deploysur un VPS Debian (non testé)🤖 Generated with Claude Code