pandopia / calcul-dpe-php
Moteur PHP de calcul DPE 3CL-2021
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
Requires
- php: ^8.2
- ext-dom: *
- ext-gd: *
- ext-libxml: *
- ext-mbstring: *
- chillerlan/php-qrcode: ^5.0
- setasign/fpdi: ^2.6
- tecnickcom/tcpdf: ^6.10
Requires (Dev)
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-conformite/taches-ouvertes-2026-10-b
- dev-conformite/taches-ouvertes-2026-10
- dev-conformite/deltas-corpus-2026-10-c
- dev-conformite/deltas-corpus-2026-10-b
- dev-conformite/deltas-corpus-2026-10-a
- dev-editeur-origine-donnees
- dev-editeur-gplan-2
- dev-editeur-street-view
- dev-editeur-plan-localisation
- dev-editeur-logements-synthese
- dev-editeur-navigation-colonnes
- dev-editeur-pages
- dev-editeur-dpe
- dev-feature/modeles-dpe-2023-2024
- dev-feature/rapport-pdf
- dev-conformite/deltas-corpus-2026-09-h
- dev-conformite/deltas-corpus-2026-09-g
- dev-conformite/deltas-corpus-2026-09-f
- dev-conformite/deltas-corpus-2026-09-e
- dev-conformite/deltas-corpus-2026-09-d
- dev-conformite/deltas-corpus-2026-09-c
- dev-conformite/deltas-corpus-2026-09-b
- dev-conformite/deltas-corpus-2026-09
- dev-fix/2662E2147774H-methode-saisie-2
- dev-claude/nifty-jones-ab34c3
- dev-claude/awesome-mayer-30053a
This package is auto-updated.
Last update: 2026-10-18 06:35:31 UTC
README
Librairie et CLI PHP pour calculer un DPE 3CL-2021 a partir d'un XML ADEME.
Installation
composer install composer dump-autoload
Utilisation en librairie
composer require pandopia/calcul-dpe-php
<?php use CalculDpePHP\CalculDpePHP; $xml = file_get_contents('dpe.xml'); $calculatedXml = CalculDpePHP::calculate($xml); $energy = CalculDpePHP::calculate($xml, ['energieOnly' => true]); // $energy->epConso5UsagesM2 // $energy->classeBilanDpe // $energy->emissionGes5UsagesM2 // $energy->classeEmissionGes
Utilisation en CLI
php bin/calcul-dpe /chemin/vers/input.xml [/chemin/vers/output.xml]
Rapport PDF du DPE
Genere le rapport PDF d'un DPE a partir de son XML ADEME valide (avec ses
resultats <sortie>), sur le fond du modele officiel du ministere en vigueur a sa date
d'etablissement : editions du 1er janvier 2023, du 1er juillet 2024 et du
1er septembre 2025 (seule cette derniere porte le QR code), pour maison,
appartement, appartement a partir de l'immeuble et immeuble. Les DPE etablis
avant 2023 levent UnsupportedTemplateException.
<?php use CalculDpePHP\CalculDpePHP; use CalculDpePHP\Dto\DiagnostiqueurRapport; use CalculDpePHP\Dto\DonneesRapportPdf; $pdf = CalculDpePHP::genererPdf(file_get_contents('dpe.xml'), new DonneesRapportPdf( photo: DonneesRapportPdf::image('photo.jpg'), // JPEG ou PNG logo: DonneesRapportPdf::image('logo.png'), signature: DonneesRapportPdf::image('signature.png'), numeroDpe: '2674E1068548B', // si absent du XML nomProprietaire: 'Nom du proprietaire', // remplace le XML s'il est renseigne adresseProprietaire: '1 rue X 75000 Paris', diagnostiqueur: new DiagnostiqueurRapport( entreprise: 'Entreprise', adresse: '37 rue Y 75008 PARIS', nom: 'Prenom Nom', telephone: '01 00 00 00 00', email: 'contact@exemple.fr', numeroCertification: 'C0000', organismeCertification: 'Organisme', adresseOrganismeCertification: 'Adresse de l\'organisme', ), explicationsPersonnalisees: 'Ecarts consommations estimees / reelles (annexe)', commentaires: 'Commentaires sous les travaux (p.5)', )); file_put_contents('dpe.pdf', $pdf);
Tous les champs de DonneesRapportPdf sont facultatifs. Les donnees du XML
sont utilisees quand un champ n'est pas renseigne ; les XML de l'observatoire
ADEME n'ont pas les donnees personnelles (proprietaire, diagnostiqueur).
Sans numero ADEME (ni dans le XML, ni dans le DTO : calcul prealable, simulation), la page 1 porte en diagonale « DOCUMENT NON OFFICIEL – DPE non enregistre aupres de l'ADEME – sans valeur reglementaire », le numero est « non attribue » et le QR code est remplace par une mention.
En CLI :
php bin/dpe-pdf dpe.xml dpe.pdf --photo=photo.jpg --logo=logo.png --signature=sig.png --numero-dpe=2674E1068548B
php bin/dpe-pdf sans argument liste toutes les options (proprietaire,
diagnostiqueur, organisme, explications, commentaires, lien du guide).
Preparation des modeles officiels et choix techniques :
resources/pdf/README.md.
Outil de preparation des fixtures XML
php bin/process-xml /chemin/vers/fichier.xml
Le script :
- sauvegarde l'original dans
resources/XML/verif - sauvegarde une copie nettoyee dans
resources/XML/inputen supprimant<donnee_intermediaire>et<sortie>
Rapport de conformité
Compare la sortie du moteur aux jeux de tests, balise par balise, et ecrit
reports/official-tests.json et reports/official-tests.md :
php bin/official-test-report
Options utiles :
php bin/official-test-report --list-corpora
php bin/official-test-report --tolerance=reglementaire
php bin/official-test-report --filter=2657E --famille="Génération chauffage" --top=30
Profils de tolerance : strict (0,1 %, defaut), reglementaire (1 %),
repo (reprend tests/tolerances.php).
Jeux de tests
Les autotests et cas tests de la procedure officielle d'evaluation CSTB ne sont
pas diffuses publiquement. La conformite est mesuree contre les DPE opposables
de l'observatoire ADEME. Provenance, licence et limites :
resources/XML/official/README.md.
Construire un jeu stratifie (4 perimetres CSTB x 2 regimes du coefficient EP electricite) :
php bin/fetch-official-corpus --build=ademe-2026-09 --per-stratum=15