From c65cab710bb3d79db20862c9361d4dbbac8ac5d7 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 25 Jun 2026 03:20:08 +0900 Subject: feat(php-shim): model $_ENV/$_SERVER as OsString snapshots Rework the environment shim around getenv/putenv on the real environment and $_ENV/$_SERVER as startup snapshots, all over OsString. Migrate every caller off the old server()/server_argv() helpers and force the snapshots in main() before any putenv() runs. Document the porting rules in docs/dev/env-vars-porting.md. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/main.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'crates/shirabe/src/main.rs') diff --git a/crates/shirabe/src/main.rs b/crates/shirabe/src/main.rs index 3e3623d..538d89d 100644 --- a/crates/shirabe/src/main.rs +++ b/crates/shirabe/src/main.rs @@ -1,8 +1,13 @@ //! ref: composer/bin/composer -use shirabe_php_shim::run_shutdown_functions; +use shirabe_php_shim::{PHP_ENV, PHP_SERVER, run_shutdown_functions}; fn main() { + // Take the $_ENV / $_SERVER snapshots before any putenv() mutates the real environment. + // See `docs/dev/env-vars-porting.md` for details. + std::sync::LazyLock::force(&PHP_ENV); + std::sync::LazyLock::force(&PHP_SERVER); + let result = shirabe::run(std::env::args().collect()); run_shutdown_functions(); let mut exit_code = match result { -- cgit v1.3.1