PHP Classes

How to Use PHP Profiler Tools to Provide Estimates of CO2 Consumption of PHP Applications Using the Package PHP Eco-Profiler: High-Precision Carbon Footprint Auditor: Measure the carbon footprint of applications

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2026-01-24 (29 days ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
php-eco-profiler 1.0MIT/X Consortium ...8.1Performance and optimization, PHP 8
Description 

Author

This package can measure the carbon footprint of applications.

It can start measuring the time of the start of a part of a code of a PHP application.

When that part of the code and the execution, the package can measure the CO2 impact using proxy classes that provide estimates of the use of different machine resources and provider classes that perform calculations considering the CPU architecture and the time that the application part took to execute.

Currently the package provides proxy classes to provide measures of the CO2 impact of:

- MySQL database clusters

The package returns an array with several measures. It can also export to a file in CSV or JSON format.

Innovation Award
PHP Programming Innovation award nominee
January 2026
Nominee
Vote
A PHP application that runs on one or more server computers consume energy. The energy consumed by these computers has an impact in terms of CO2 emissions.

This package can estimate measures of energy consumed by computers that run the code of PHP applications. This way it can provide estimates of the PHP applications in terms of CO2 impact.

Manuel Lemos
Picture of zinsou A.A.E.Moïse
  Performance   Level  
Name: zinsou A.A.E.Moïse is available for providing paid consulting. Contact zinsou A.A.E.Moïse .
Classes: 51 packages by
Country: Benin Benin
Age: 36
All time rank: 6761 in Benin Benin
Week rank: 22 Up1 in Benin Benin Equal
Innovation award
Innovation award
Nominee: 24x

Winner: 2x

Instructions

Please check this example script to learn how to measure the CO2 consumption of a PHP script.

Example

<?php

require_once __DIR__ . '/vendor/autoload.php';

use
GreenCode\EcoProfiler;
use
GreenCode\ConfigLoader;
use
GreenCode\Providers\StaticProvider;
use
GreenCode\Exporters\JsonExporter;
use
GreenCode\Exporters\MemoryExporter;

// 1. Chargement de la configuration (incluant les nouveaux seuils de Rating)
$settings = ConfigLoader::load('settings');
$carbonData = ConfigLoader::load('carbon_data');

// 2. Initialisation du fournisseur (Intensité carbone moyenne par pays)
$provider = new StaticProvider($carbonData['averages']);

/**
 * SCÉNARIO A : Mode Stateless (Cloud-Native / API)
 * Idéal pour renvoyer le score directement dans une réponse JSON sans toucher au disque.
 */
$profilerStateless = new EcoProfiler(
   
$provider,
   
$settings,
    new
MemoryExporter() // Zéro écriture disque
);

$profilerStateless->start();

// --- Simulation d'une logique métier efficiente ---
usleep(5000);
// ---------------------------------------------------

// On arrête et on récupère le rapport directement dans une variable
$apiReport = $profilerStateless->stop('FR', [
   
'mysql_query' => 2,
   
'redis_get' => 10
]);

echo
"=== MODE STATELESS (API) ===<br>";
echo
"Note Carbone : " . $apiReport['ecology']['rating'] . "<br>";
echo
"Impact Total : " . $apiReport['ecology']['total_co2'] . " gCO2e<br><br>";


/**
 * SCÉNARIO B : Mode Audit (Enregistrement de rapport)
 * Idéal pour générer un historique de performance environnementale.
 */
$profilerAudit = new EcoProfiler(
   
$provider,
   
$settings,
    new
JsonExporter() // Enregistre dans /reports/ défini dans settings.php
);

$profilerAudit->start();

// --- Simulation d'un processus plus lourd ---
for($i=0; $i<100000; $i++) { $x = sqrt($i); }
// --------------------------------------------

$auditReport = $profilerAudit->stop('DE', [
   
'external_api_call' => 1
]);

echo
"=== MODE AUDIT (FILE) ===<br>";
echo
"Rapport généré avec succès dans : " . ($settings['export_path'] ?? 'dossier par défaut') . "<br>";
echo
"Statut de l'export : " . $auditReport['meta']['export_log'] . "<br>";

// 3. Exemple de vérification du Green SLA (Budget Carbone)
if ($auditReport['ecology']['budget_exceeded']) {
    echo
"?? ALERTE : Le budget carbone configuré dans settings.php a été dépassé !";
}


Details

? PHP Eco-Profiler : Le Manifeste

Latest Stable Version License PHP Version GitHub Actions Build Cloud Native

> "On ne peut pas optimiser ce que l'on ne mesure pas." > Le développeur PHP moderne est le garant de l'efficience énergétique du web. PHP Eco-Profiler est une bibliothèque d'ingénierie durable conçue pour passer d'un web de l'abondance à un web de la pertinence.

? Pourquoi ce projet existe ?

La performance n'est plus seulement une question de millisecondes, c'est une question de milligrammes de $CO_{2}$.

PHP Eco-Profiler réintroduit la réalité physique du matériel dans l'abstraction du code en calculant l'impact carbone réel de vos scripts. Il permet de réconcilier les impératifs de production avec les limites planétaires.

? Les 3 Piliers de l'Innovation (Innovation Awards 2026)

1. Conscience Matérielle (Hardware-Awareness)

Détection automatique de l'architecture CPU (ARM vs x86) pour ajuster les courbes de consommation. Le moteur valorise les infrastructures sobres (type AWS Graviton) et les gains d'efficience du moteur Zend sous PHP 8.4+.

2. Vision Holistique (Eco-Proxying)

Ne mesurez plus seulement votre code local. Mesurez l'ensemble de votre écosystème grâce au ProxyRegistry qui comptabilise l'impact des dépendances tierces (SQL, API externes, Cloud storage) via un système de fallback intelligent.

3. Architecture Stateless & Cloud-Native

Conçu pour le cloud moderne, l'outil fonctionne en mode In-Memory. Il ne nécessite aucune écriture disque, le rendant nativement compatible avec AWS Lambda, Google Cloud Functions et les environnements Docker en lecture seule.

? Utilisation & Ingénierie

Installation

composer require manuwhat/php-eco-profiler```


Exemple API Stateless (Sans stockage fichier)

use GreenCode\EcoProfiler; use GreenCode\Exporters\MemoryExporter;

// Configuration Stateless pour Cloud Functions / API $profiler = new EcoProfiler($provider, $settings, new MemoryExporter()); $profiler->start();

// ... Logique métier ...

$report = $profiler->stop('FR', ['mysql_query' => 5]);

// Réponse directe en JSON (Zéro Latence I/O) header('Content-Type: application/json'); echo json_encode($report, JSON_PRETTY_PRINT);`

? Architecture & Extensibilité

Le projet adopte le Strategy Pattern, rendant chaque composant interchangeable :

Providers : Sources d'intensité carbone (Statique ou API temps réel).

Proxies : Connecteurs pour services tiers (DB, Cloud, Mail).

Exporters : Formats de sortie (JSON, CSV, ou Memory-only).

? Qualité Industrielle

Le projet intègre une suite de tests PHPUnit rigoureuse et une intégration continue via GitHub Actions, garantissant la précision des modèles de conversion Joules/Carbone sur toutes les versions de PHP supportées.


./vendor/bin/phpunit tests```


##?Gouvernance Carbone :

Notation Dynamique : Ne soyez pas limité par des standards pré-établis. Configurez vos propres seuils de notation (A+ à E) directement dans vos fichiers de paramètres pour les aligner sur vos objectifs RSE spécifiques.


##? Vision 
PHP Eco-Profiler transforme chaque exécution de script en une donnée environnementale auditable. Il apporte une réponse technique concrète aux régulations RSE européennes (CSRD) et positionne PHP comme un leader de la Green-Tech.

"Le code le plus écologique est celui que l'on optimise avec conscience." Développé avec passion par manuwhat

  Files folder image Files (28)  
File Role Description
Files folder image.github (1 directory)
Files folder imageconfig (3 files)
Files folder imagesrc (2 files, 3 directories)
Files folder imagetests (3 files)
Accessible without login Plain text file arborescence.txt Doc. Documentation
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file DOCUMENTATION.md Doc. Documentation
Accessible without login Plain text file example.php Example Example script
Accessible without login Plain text file example_api.php Example Example script
Accessible without login Plain text file INSTALL.md Example Example script
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file readme.md Doc. Documentation
Accessible without login Plain text file SUMMARY.md Doc. Summary

  Files folder image Files (28)  /  .github  
File Role Description
Files folder imageworkflows (1 file)

  Files folder image Files (28)  /  .github  /  workflows  
File Role Description
  Accessible without login Plain text file tests.yml Data Auxiliary data

  Files folder image Files (28)  /  config  
File Role Description
  Accessible without login Plain text file carbon_data.php Conf. Configuration script
  Accessible without login Plain text file eco_proxy.php Aux. Configuration script
  Accessible without login Plain text file settings.php Aux. Configuration script

  Files folder image Files (28)  /  src  
File Role Description
Files folder imageExporters (4 files)
Files folder imageProviders (2 files)
Files folder imageProxy (3 files)
  Plain text file ConfigLoader.php Class Class source
  Plain text file EcoProfiler.php Class Class source

  Files folder image Files (28)  /  src  /  Exporters  
File Role Description
  Plain text file CsvExporter.php Class Class source
  Plain text file ExporterInterface.php Class Class source
  Plain text file JsonExporter.php Class Class source
  Plain text file MemoryExporter.php Class Class source

  Files folder image Files (28)  /  src  /  Providers  
File Role Description
  Plain text file CarbonProviderInterface.php Class Class source
  Plain text file StaticProvider.php Class Class source

  Files folder image Files (28)  /  src  /  Proxy  
File Role Description
  Plain text file DatabaseProxy.php Class Class source
  Plain text file ProxyRegistry.php Class Class source
  Plain text file ProxyServiceInterface.php Class Class source

  Files folder image Files (28)  /  tests  
File Role Description
  Plain text file EcoProfilerTest.php Class Class source
  Plain text file ProxyRegistryTest.php Class Class source
  Plain text file RatingSystemTest.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads  
 100%
Total:0
This week:0