Repository navigation
Expand file tree
/
Copy pathexample.php
More file actions
72 lines (56 loc) · 2.24 KB
/
Copy pathexample.php
File metadata and controls
72 lines (56 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?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é !";
}