diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-06 03:46:41 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-06 03:46:41 +0900 |
| commit | 92d2199afcecd0056e82d2559700769715401ef0 (patch) | |
| tree | b9d65620db53bc19f800247660e560f3f8775217 /crates/shirabe/src/downloader | |
| parent | 27e81d5e5ca0a89eb176a65b1d9f186658b16f50 (diff) | |
| download | php-shirabe-92d2199afcecd0056e82d2559700769715401ef0.tar.gz php-shirabe-92d2199afcecd0056e82d2559700769715401ef0.tar.zst php-shirabe-92d2199afcecd0056e82d2559700769715401ef0.zip | |
refactor(php-shim): take filesystem paths as impl AsRef<Path>
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<Path>`, 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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/downloader')
| -rw-r--r-- | crates/shirabe/src/downloader/phar_downloader.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/downloader/tar_downloader.rs | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/crates/shirabe/src/downloader/phar_downloader.rs b/crates/shirabe/src/downloader/phar_downloader.rs index 32ac0b3f..795d0645 100644 --- a/crates/shirabe/src/downloader/phar_downloader.rs +++ b/crates/shirabe/src/downloader/phar_downloader.rs @@ -62,7 +62,7 @@ impl ArchiveDownloader for PharDownloader { path: &str, ) -> anyhow::Result<Option<PhpMixed>> { // Can throw an UnexpectedValueException - let archive = Phar::new(file.to_string())?; + let archive = Phar::new(file)?; archive.extract_to(path, None, true)?; // TODO: handle openssl signed phars // https://github.com/composer/composer/pull/33#issuecomment-2250768 diff --git a/crates/shirabe/src/downloader/tar_downloader.rs b/crates/shirabe/src/downloader/tar_downloader.rs index a4446287..3c73595b 100644 --- a/crates/shirabe/src/downloader/tar_downloader.rs +++ b/crates/shirabe/src/downloader/tar_downloader.rs @@ -61,7 +61,7 @@ impl ArchiveDownloader for TarDownloader { file: &str, path: &str, ) -> anyhow::Result<Option<PhpMixed>> { - let archive = PharData::new(file.to_string())?; + let archive = PharData::new(file)?; archive.extract_to(path, None, true)?; Ok(None) |
