PHP Classes

File: example.php

Recommend this page to a friend!
  Packages of zinsou A.A.E.Moïse   PHP Eco-Profiler: High-Precision Carbon Footprint Auditor   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Eco-Profiler: High-Precision Carbon Footprint Auditor
Measure the carbon footprint of applications
Author: By
Last change:
Date: 5 months ago
Size: 2,295 bytes
 

Contents

Class file image Download
<?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é !";
}