From 92d2199afcecd0056e82d2559700769715401ef0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 6 Aug 2026 03:46:41 +0900 Subject: refactor(php-shim): take filesystem paths as impl AsRef The shim's filesystem entry points took `&str` even though each one resolves to a local path through `std::fs` or a syscall, so callers holding a `PathBuf` had to stringify it at the call site. They now take `impl AsRef`, the form `file_exists`, `is_dir`, `unlink` and the rest of the already-converted set use. `Phar`, `PharData` and `ZipArchive` keep their archive path as a `PathBuf`. `PharData::compress` names the compressed sibling by appending the suffix to the file name rather than formatting the path into a `String`. Arguments PHP resolves through a stream wrapper (`fopen`, `file_put_contents`, `include`) still take `&str`, as do the byte-string operations (`dirname`, `basename`, `pathinfo`) and archive-internal entry names, which are `/`-joined logical names rather than OS paths. Co-Authored-By: Claude Opus 5 (1M context) --- crates/shirabe/tests/package/archiver/phar_archiver_test.rs | 2 +- crates/shirabe/tests/package/archiver/zip_archiver_test.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'crates/shirabe/tests/package/archiver') diff --git a/crates/shirabe/tests/package/archiver/phar_archiver_test.rs b/crates/shirabe/tests/package/archiver/phar_archiver_test.rs index 7d879973..a9163058 100644 --- a/crates/shirabe/tests/package/archiver/phar_archiver_test.rs +++ b/crates/shirabe/tests/package/archiver/phar_archiver_test.rs @@ -53,7 +53,7 @@ impl ArchiverTestCase { fn write_file(&self, path: &str, content: &str, current_work_dir: &str) { if !file_exists(dirname(path)) { - mkdir(&dirname(path), 0o777, true); + mkdir(dirname(path), 0o777, true); } let result = file_put_contents(path, content.as_bytes()); diff --git a/crates/shirabe/tests/package/archiver/zip_archiver_test.rs b/crates/shirabe/tests/package/archiver/zip_archiver_test.rs index b94beb6c..e20ca624 100644 --- a/crates/shirabe/tests/package/archiver/zip_archiver_test.rs +++ b/crates/shirabe/tests/package/archiver/zip_archiver_test.rs @@ -106,7 +106,7 @@ impl ArchiverTestCase { fn write_file(&self, path: &str, content: String, current_work_dir: &str) { if !file_exists(dirname(path)) { - mkdir(&dirname(path), 0o777, true); + mkdir(dirname(path), 0o777, true); } let result = file_put_contents(path, content.as_bytes()); -- cgit v1.3.1