aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/process/process.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/process/process.rs')
-rw-r--r--crates/shirabe-external-packages/src/symfony/process/process.rs25
1 files changed, 21 insertions, 4 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/process/process.rs b/crates/shirabe-external-packages/src/symfony/process/process.rs
index caf8aa1..3550f09 100644
--- a/crates/shirabe-external-packages/src/symfony/process/process.rs
+++ b/crates/shirabe-external-packages/src/symfony/process/process.rs
@@ -1670,13 +1670,20 @@ impl Process {
}
fn get_default_env(&self) -> IndexMap<String, PhpMixed> {
- let env = php::getenv_all();
- let server = php::php_server();
+ let env: IndexMap<String, String> = php::getenv_all()
+ .map(|(k, v)| {
+ (
+ k.to_string_lossy().into_owned(),
+ v.to_string_lossy().into_owned(),
+ )
+ })
+ .collect();
+ let server = php::PHP_SERVER.lock().unwrap();
// non-Windows: array_intersect_key($env, $_SERVER) ?: $env
let mut intersect: IndexMap<String, PhpMixed> = IndexMap::new();
for (k, v) in &env {
- if server.contains_key(k) {
+ if server.get(k).is_some() {
intersect.insert(k.clone(), PhpMixed::String(v.clone()));
}
}
@@ -1689,7 +1696,17 @@ impl Process {
};
// $_ENV + env_map
- let mut result = php::php_env();
+ let mut result: IndexMap<String, PhpMixed> = php::PHP_ENV
+ .lock()
+ .unwrap()
+ .get_all()
+ .map(|(k, v)| {
+ (
+ k.to_string_lossy().into_owned(),
+ PhpMixed::String(v.to_string_lossy().into_owned()),
+ )
+ })
+ .collect();
for (k, v) in env_map {
result.entry(k).or_insert(v);
}