Ce face Platform.environment
Variabilele de mediu sunt perechi nume–valoare pe care sistemul le dă fiecărui program: PATH, HOME (sau USERPROFILE pe Windows), LANG și altele setate de tine (PORT=8080 dart run main.dart). Platform.environment le returnează ca Map<String, String>.
Map-ul nu poate fi modificat: o atribuire aruncă UnsupportedError. Pentru a da alte variabile unui program pornit de tine, folosește parametrul environment al lui Process.run.
O variabilă care lipsește dă null la environment['NUME'], deci pui de obicei o valoare implicită cu ??. Pe Windows numele variabilelor nu țin cont de litere mari și mici.
Ce returnează
Un Map<String, String> nemodificabil cu variabilele de mediu.
Exemple
Exemplul 1: Configurare din variabile de mediu, cu valori implicite
import 'dart:io';
void main() {
final env = Platform.environment;
final port = int.parse(env['PORT_APLICATIE'] ?? '8080');
final oras = env['ORAS_IMPLICIT'] ?? 'București';
print('Port: $port');
print('Oraș: $oras');
print('Există PATH: ${env.containsKey('PATH')}');
}
Rezultat
Port: 8080
Oraș: București
Există PATH: true
Exemplul 2: Map-ul nu se poate modifica
import 'dart:io';
void main() {
try {
Platform.environment['NUME'] = 'Ana';
} on UnsupportedError catch (eroare) {
print('Eroare: ${eroare.message}');
}
}
Rezultat
Eroare: Cannot modify unmodifiable map
Exemplul 3: Variabile trimise unui program pornit din Dart
Programul copil (sh) primește variabila NUME pe lângă cele moștenite.
import 'dart:io';
Future<void> main() async {
final rezultat = await Process.run(
'sh',
['-c', r'echo "Salut, $NUME din $ORAS!"'],
environment: {'NUME': 'Ana', 'ORAS': 'Sibiu'},
);
stdout.write(rezultat.stdout);
}
Rezultat
Salut, Ana din Sibiu!
Greșeli frecvente
- Pui parole sau chei API direct în cod. Citește-le din variabile de mediu, ca să nu ajungă în Git.
- Folosești
env['HOME']!: pe Windows variabila se numeșteUSERPROFILE, iar!aruncă o eroare când lipsește.
Comenzi înrudite
Platform: Clasa Platform dă informații despre sistemul pe care rulează programul: sistemul de operare, variabilele de mediu, procesorul.Process.run: Pornește alt program, așteaptă să se termine și returnează ce a scris (stdout, stderr) și codul de ieșire.Platform.script: Platform.script este adresa (Uri) fișierului Dart care rulează; executableArguments sunt opțiunile date mașinii virtuale Dart.