aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-07 07:15:08 +0900
committernsfisis <nsfisis@gmail.com>2026-08-07 07:15:08 +0900
commite7f83b74e8f8c12b4a1b0f9f613387b03858dbdd (patch)
tree37fba97742e2d16ff1494eba600da52a0aac9fcf /crates/shirabe/src
parent759b2980e70dfb8960238f75d68bb6dddce25414 (diff)
downloadphp-shirabe-e7f83b74e8f8c12b4a1b0f9f613387b03858dbdd.tar.gz
php-shirabe-e7f83b74e8f8c12b4a1b0f9f613387b03858dbdd.tar.zst
php-shirabe-e7f83b74e8f8c12b4a1b0f9f613387b03858dbdd.zip
chore: use shirabe_php_shim::impl_php_class
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/command/about_command.rs3
-rw-r--r--crates/shirabe/src/command/depends_command.rs3
-rw-r--r--crates/shirabe/src/command/prohibits_command.rs3
-rw-r--r--crates/shirabe/src/command/status_command.rs3
-rw-r--r--crates/shirabe/src/command/validate_command.rs3
-rw-r--r--crates/shirabe/src/downloader/download_manager.rs2
-rw-r--r--crates/shirabe/src/downloader/downloader_interface.rs2
-rw-r--r--crates/shirabe/src/downloader/file_downloader.rs8
-rw-r--r--crates/shirabe/src/downloader/fossil_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/git_downloader.rs9
-rw-r--r--crates/shirabe/src/downloader/gzip_downloader.rs8
-rw-r--r--crates/shirabe/src/downloader/hg_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/path_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/perforce_downloader.rs12
-rw-r--r--crates/shirabe/src/downloader/phar_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/rar_downloader.rs7
-rw-r--r--crates/shirabe/src/downloader/svn_downloader.rs8
-rw-r--r--crates/shirabe/src/downloader/tar_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/xz_downloader.rs6
-rw-r--r--crates/shirabe/src/downloader/zip_downloader.rs8
20 files changed, 61 insertions, 54 deletions
diff --git a/crates/shirabe/src/command/about_command.rs b/crates/shirabe/src/command/about_command.rs
index 95d0a343..764ecf5f 100644
--- a/crates/shirabe/src/command/about_command.rs
+++ b/crates/shirabe/src/command/about_command.rs
@@ -7,13 +7,14 @@ use crate::composer;
use shirabe_external_packages::symfony::console::command::command::Command;
use shirabe_external_packages::symfony::console::input::InputInterface;
use shirabe_external_packages::symfony::console::output::OutputInterface;
+use shirabe_php_shim::impl_php_class;
#[derive(Debug)]
pub struct AboutCommand {
base_command_data: BaseCommandData,
}
-shirabe_php_shim::impl_php_class!(AboutCommand, r"Composer\Command\AboutCommand");
+impl_php_class!(AboutCommand, r"Composer\Command\AboutCommand");
impl Default for AboutCommand {
fn default() -> Self {
diff --git a/crates/shirabe/src/command/depends_command.rs b/crates/shirabe/src/command/depends_command.rs
index a8910603..974e55b1 100644
--- a/crates/shirabe/src/command/depends_command.rs
+++ b/crates/shirabe/src/command/depends_command.rs
@@ -10,6 +10,7 @@ use crate::console::input::InputOption;
use shirabe_external_packages::symfony::console::command::command::Command;
use shirabe_external_packages::symfony::console::input::InputInterface;
use shirabe_external_packages::symfony::console::output::OutputInterface;
+use shirabe_php_shim::impl_php_class;
#[derive(Debug)]
pub struct DependsCommand {
@@ -18,7 +19,7 @@ pub struct DependsCommand {
colors: std::cell::RefCell<Vec<String>>,
}
-shirabe_php_shim::impl_php_class!(DependsCommand, r"Composer\Command\DependsCommand");
+impl_php_class!(DependsCommand, r"Composer\Command\DependsCommand");
impl Default for DependsCommand {
fn default() -> Self {
diff --git a/crates/shirabe/src/command/prohibits_command.rs b/crates/shirabe/src/command/prohibits_command.rs
index 305af738..da853f49 100644
--- a/crates/shirabe/src/command/prohibits_command.rs
+++ b/crates/shirabe/src/command/prohibits_command.rs
@@ -9,6 +9,7 @@ use crate::console::input::InputOption;
use shirabe_external_packages::symfony::console::command::command::Command;
use shirabe_external_packages::symfony::console::input::InputInterface;
use shirabe_external_packages::symfony::console::output::OutputInterface;
+use shirabe_php_shim::impl_php_class;
#[derive(Debug)]
pub struct ProhibitsCommand {
@@ -17,7 +18,7 @@ pub struct ProhibitsCommand {
colors: std::cell::RefCell<Vec<String>>,
}
-shirabe_php_shim::impl_php_class!(ProhibitsCommand, r"Composer\Command\ProhibitsCommand");
+impl_php_class!(ProhibitsCommand, r"Composer\Command\ProhibitsCommand");
impl Default for ProhibitsCommand {
fn default() -> Self {
diff --git a/crates/shirabe/src/command/status_command.rs b/crates/shirabe/src/command/status_command.rs
index 5bcb7dd7..7a8ac04c 100644
--- a/crates/shirabe/src/command/status_command.rs
+++ b/crates/shirabe/src/command/status_command.rs
@@ -16,13 +16,14 @@ use indexmap::IndexMap;
use shirabe_external_packages::symfony::console::command::command::Command;
use shirabe_external_packages::symfony::console::input::InputInterface;
use shirabe_external_packages::symfony::console::output::OutputInterface;
+use shirabe_php_shim::impl_php_class;
#[derive(Debug)]
pub struct StatusCommand {
base_command_data: BaseCommandData,
}
-shirabe_php_shim::impl_php_class!(StatusCommand, r"Composer\Command\StatusCommand");
+impl_php_class!(StatusCommand, r"Composer\Command\StatusCommand");
impl Default for StatusCommand {
fn default() -> Self {
diff --git a/crates/shirabe/src/command/validate_command.rs b/crates/shirabe/src/command/validate_command.rs
index 6e84c9d9..0a89b71d 100644
--- a/crates/shirabe/src/command/validate_command.rs
+++ b/crates/shirabe/src/command/validate_command.rs
@@ -16,13 +16,14 @@ use crate::util::Filesystem;
use shirabe_external_packages::symfony::console::command::command::Command;
use shirabe_external_packages::symfony::console::input::InputInterface;
use shirabe_external_packages::symfony::console::output::OutputInterface;
+use shirabe_php_shim::impl_php_class;
#[derive(Debug)]
pub struct ValidateCommand {
base_command_data: BaseCommandData,
}
-shirabe_php_shim::impl_php_class!(ValidateCommand, r"Composer\Command\ValidateCommand");
+impl_php_class!(ValidateCommand, r"Composer\Command\ValidateCommand");
impl Default for ValidateCommand {
fn default() -> Self {
diff --git a/crates/shirabe/src/downloader/download_manager.rs b/crates/shirabe/src/downloader/download_manager.rs
index 682fdcb8..423eda28 100644
--- a/crates/shirabe/src/downloader/download_manager.rs
+++ b/crates/shirabe/src/downloader/download_manager.rs
@@ -149,7 +149,7 @@ impl DownloadManager {
return Err(LogicException {
message: format!(
"Downloader \"{}\" is a {} type downloader and can not be used to download {} for package {}",
- shirabe_php_shim::PhpClass::php_class_name(&*downloader.borrow()),
+ downloader.borrow().php_class_name(),
downloader_installation_source,
installation_source.unwrap_or_default(),
package,
diff --git a/crates/shirabe/src/downloader/downloader_interface.rs b/crates/shirabe/src/downloader/downloader_interface.rs
index 8f2e2c0d..c5b05a87 100644
--- a/crates/shirabe/src/downloader/downloader_interface.rs
+++ b/crates/shirabe/src/downloader/downloader_interface.rs
@@ -3,8 +3,6 @@
use crate::package::PackageInterfaceHandle;
use shirabe_php_shim::PhpMixed;
-/// `PhpClass` is a supertrait because `DownloadManager::getDownloaderForPackage` reports
-/// `get_class($downloader)` in its error message, and Rust has no runtime class name.
#[async_trait::async_trait(?Send)]
pub trait DownloaderInterface: std::fmt::Debug + shirabe_php_shim::PhpClass {
fn get_installation_source(&self) -> String;
diff --git a/crates/shirabe/src/downloader/file_downloader.rs b/crates/shirabe/src/downloader/file_downloader.rs
index 053a7161..d3b08b36 100644
--- a/crates/shirabe/src/downloader/file_downloader.rs
+++ b/crates/shirabe/src/downloader/file_downloader.rs
@@ -28,8 +28,8 @@ use indexmap::IndexMap;
use shirabe_php_shim::{
DIRECTORY_SEPARATOR, InvalidArgumentException, PATHINFO_BASENAME, PATHINFO_EXTENSION,
PHP_URL_PATH, PhpMixed, RuntimeException, UnexpectedValueException, array_search, file_exists,
- filesize, get_class, hash, hash_file, is_dir, is_executable, parse_url, pathinfo, realpath,
- rtrim, spl_object_hash, strlen, strpos, strtr, trim, umask, usleep,
+ filesize, get_class, hash, hash_file, impl_php_class, is_dir, is_executable, parse_url,
+ pathinfo, realpath, rtrim, spl_object_hash, strlen, strpos, strtr, trim, umask, usleep,
};
use std::sync::{LazyLock, Mutex};
@@ -47,8 +47,6 @@ pub static DOWNLOAD_METADATA: LazyLock<Mutex<IndexMap<String, PhpMixed>>> =
pub static RESPONSE_HEADERS: LazyLock<Mutex<IndexMap<String, Vec<String>>>> =
LazyLock::new(|| Mutex::new(IndexMap::new()));
-shirabe_php_shim::impl_php_class!(FileDownloader, r"Composer\Downloader\FileDownloader");
-
/// Base downloader for files
#[derive(Debug)]
pub struct FileDownloader {
@@ -83,6 +81,8 @@ pub struct FileDownloader {
additional_cleanup_paths: std::cell::RefCell<IndexMap<String, Vec<String>>>,
}
+impl_php_class!(FileDownloader, r"Composer\Downloader\FileDownloader");
+
impl FileDownloader {
pub fn reset_download_metadata() {
DOWNLOAD_METADATA.lock().unwrap().clear();
diff --git a/crates/shirabe/src/downloader/fossil_downloader.rs b/crates/shirabe/src/downloader/fossil_downloader.rs
index c6be8f24..72409a1f 100644
--- a/crates/shirabe/src/downloader/fossil_downloader.rs
+++ b/crates/shirabe/src/downloader/fossil_downloader.rs
@@ -13,15 +13,15 @@ use crate::util::Filesystem;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::Preg;
-use shirabe_php_shim::{PhpMixed, RuntimeException, php_regex};
-
-shirabe_php_shim::impl_php_class!(FossilDownloader, r"Composer\Downloader\FossilDownloader");
+use shirabe_php_shim::{PhpMixed, RuntimeException, impl_php_class, php_regex};
#[derive(Debug)]
pub struct FossilDownloader {
inner: VcsDownloaderBase,
}
+impl_php_class!(FossilDownloader, r"Composer\Downloader\FossilDownloader");
+
impl FossilDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs
index dd5f4e41..5e57de52 100644
--- a/crates/shirabe/src/downloader/git_downloader.rs
+++ b/crates/shirabe/src/downloader/git_downloader.rs
@@ -19,12 +19,11 @@ use crate::util::Url;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
use shirabe_php_shim::{
- PhpMixed, RuntimeException, array_map, basename, dirname, implode, in_array_strict, is_dir,
- php_regex, preg_quote, realpath, rtrim, strlen, strpos, substr, trim, version_compare,
+ PhpMixed, RuntimeException, array_map, basename, dirname, impl_php_class, implode,
+ in_array_strict, is_dir, php_regex, preg_quote, realpath, rtrim, strlen, strpos, substr, trim,
+ version_compare,
};
-shirabe_php_shim::impl_php_class!(GitDownloader, r"Composer\Downloader\GitDownloader");
-
#[derive(Debug)]
pub struct GitDownloader {
inner: VcsDownloaderBase,
@@ -37,6 +36,8 @@ pub struct GitDownloader {
cached_packages: std::cell::RefCell<IndexMap<i64, IndexMap<String, bool>>>,
}
+impl_php_class!(GitDownloader, r"Composer\Downloader\GitDownloader");
+
impl GitDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/gzip_downloader.rs b/crates/shirabe/src/downloader/gzip_downloader.rs
index ff7962e0..b0494479 100644
--- a/crates/shirabe/src/downloader/gzip_downloader.rs
+++ b/crates/shirabe/src/downloader/gzip_downloader.rs
@@ -15,18 +15,18 @@ use crate::util::ProcessExecutor;
use indexmap::IndexMap;
use shirabe_php_shim::{
DIRECTORY_SEPARATOR, PATHINFO_FILENAME, PHP_URL_PATH, PhpMixed, RuntimeException,
- extension_loaded, fclose, fopen, fwrite, gzclose, gzopen, gzread, implode, parse_url, pathinfo,
- strtr,
+ extension_loaded, fclose, fopen, fwrite, gzclose, gzopen, gzread, impl_php_class, implode,
+ parse_url, pathinfo, strtr,
};
-shirabe_php_shim::impl_php_class!(GzipDownloader, r"Composer\Downloader\GzipDownloader");
-
#[derive(Debug)]
pub struct GzipDownloader {
inner: FileDownloader,
cleanup_executed: std::cell::RefCell<IndexMap<String, bool>>,
}
+impl_php_class!(GzipDownloader, r"Composer\Downloader\GzipDownloader");
+
impl GzipDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/hg_downloader.rs b/crates/shirabe/src/downloader/hg_downloader.rs
index 68a84535..e555ccf5 100644
--- a/crates/shirabe/src/downloader/hg_downloader.rs
+++ b/crates/shirabe/src/downloader/hg_downloader.rs
@@ -13,15 +13,15 @@ use crate::util::Filesystem;
use crate::util::Hg as HgUtils;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
-use shirabe_php_shim::{PhpMixed, RuntimeException};
-
-shirabe_php_shim::impl_php_class!(HgDownloader, r"Composer\Downloader\HgDownloader");
+use shirabe_php_shim::{PhpMixed, RuntimeException, impl_php_class};
#[derive(Debug)]
pub struct HgDownloader {
inner: VcsDownloaderBase,
}
+impl_php_class!(HgDownloader, r"Composer\Downloader\HgDownloader");
+
impl HgDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/path_downloader.rs b/crates/shirabe/src/downloader/path_downloader.rs
index ec07d057..f10da72a 100644
--- a/crates/shirabe/src/downloader/path_downloader.rs
+++ b/crates/shirabe/src/downloader/path_downloader.rs
@@ -24,16 +24,16 @@ use indexmap::IndexMap;
use shirabe_external_packages::symfony::filesystem::Filesystem as SymfonyFilesystem;
use shirabe_php_shim::{
DIRECTORY_SEPARATOR, PHP_WINDOWS_VERSION_MAJOR, PHP_WINDOWS_VERSION_MINOR, PhpMixed,
- RuntimeException, file_exists, function_exists, is_dir, realpath,
+ RuntimeException, file_exists, function_exists, impl_php_class, is_dir, realpath,
};
-shirabe_php_shim::impl_php_class!(PathDownloader, r"Composer\Downloader\PathDownloader");
-
#[derive(Debug)]
pub struct PathDownloader {
pub(crate) inner: FileDownloader,
}
+impl_php_class!(PathDownloader, r"Composer\Downloader\PathDownloader");
+
impl PathDownloader {
const STRATEGY_SYMLINK: i64 = 10;
const STRATEGY_MIRROR: i64 = 20;
diff --git a/crates/shirabe/src/downloader/perforce_downloader.rs b/crates/shirabe/src/downloader/perforce_downloader.rs
index 74b2155b..9d4ff2a3 100644
--- a/crates/shirabe/src/downloader/perforce_downloader.rs
+++ b/crates/shirabe/src/downloader/perforce_downloader.rs
@@ -15,12 +15,7 @@ use crate::util::Perforce;
use crate::util::PerforceInterface;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
-use shirabe_php_shim::PhpMixed;
-
-shirabe_php_shim::impl_php_class!(
- PerforceDownloader,
- r"Composer\Downloader\PerforceDownloader"
-);
+use shirabe_php_shim::{PhpMixed, impl_php_class};
#[derive(Debug)]
pub struct PerforceDownloader {
@@ -28,6 +23,11 @@ pub struct PerforceDownloader {
pub(crate) perforce: std::cell::RefCell<Option<Box<dyn PerforceInterface>>>,
}
+impl_php_class!(
+ PerforceDownloader,
+ r"Composer\Downloader\PerforceDownloader"
+);
+
impl PerforceDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/phar_downloader.rs b/crates/shirabe/src/downloader/phar_downloader.rs
index 50b45eba..fc54e4b5 100644
--- a/crates/shirabe/src/downloader/phar_downloader.rs
+++ b/crates/shirabe/src/downloader/phar_downloader.rs
@@ -13,9 +13,7 @@ use crate::util::Filesystem;
use crate::util::HttpDownloader;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
-use shirabe_php_shim::{Phar, PhpMixed};
-
-shirabe_php_shim::impl_php_class!(PharDownloader, r"Composer\Downloader\PharDownloader");
+use shirabe_php_shim::{Phar, PhpMixed, impl_php_class};
#[derive(Debug)]
pub struct PharDownloader {
@@ -23,6 +21,8 @@ pub struct PharDownloader {
cleanup_executed: std::cell::RefCell<IndexMap<String, bool>>,
}
+impl_php_class!(PharDownloader, r"Composer\Downloader\PharDownloader");
+
impl PharDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/rar_downloader.rs b/crates/shirabe/src/downloader/rar_downloader.rs
index 645a5247..ee0148c7 100644
--- a/crates/shirabe/src/downloader/rar_downloader.rs
+++ b/crates/shirabe/src/downloader/rar_downloader.rs
@@ -15,17 +15,18 @@ use crate::util::Platform;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
use shirabe_php_shim::{
- PhpMixed, RarArchive, RuntimeException, UnexpectedValueException, class_exists, implode,
+ PhpMixed, RarArchive, RuntimeException, UnexpectedValueException, class_exists, impl_php_class,
+ implode,
};
-shirabe_php_shim::impl_php_class!(RarDownloader, r"Composer\Downloader\RarDownloader");
-
#[derive(Debug)]
pub struct RarDownloader {
inner: FileDownloader,
cleanup_executed: std::cell::RefCell<IndexMap<String, bool>>,
}
+impl_php_class!(RarDownloader, r"Composer\Downloader\RarDownloader");
+
impl RarDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/svn_downloader.rs b/crates/shirabe/src/downloader/svn_downloader.rs
index 6abe3ddf..99a5bfe6 100644
--- a/crates/shirabe/src/downloader/svn_downloader.rs
+++ b/crates/shirabe/src/downloader/svn_downloader.rs
@@ -16,9 +16,9 @@ use crate::util::ProcessExecutor;
use crate::util::Svn as SvnUtil;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
-use shirabe_php_shim::{PhpMixed, RuntimeException, is_dir, php_regex, version_compare};
-
-shirabe_php_shim::impl_php_class!(SvnDownloader, r"Composer\Downloader\SvnDownloader");
+use shirabe_php_shim::{
+ PhpMixed, RuntimeException, impl_php_class, is_dir, php_regex, version_compare,
+};
#[derive(Debug)]
pub struct SvnDownloader {
@@ -26,6 +26,8 @@ pub struct SvnDownloader {
pub(crate) cache_credentials: std::cell::Cell<bool>,
}
+impl_php_class!(SvnDownloader, r"Composer\Downloader\SvnDownloader");
+
impl SvnDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/tar_downloader.rs b/crates/shirabe/src/downloader/tar_downloader.rs
index ad18f052..88a53620 100644
--- a/crates/shirabe/src/downloader/tar_downloader.rs
+++ b/crates/shirabe/src/downloader/tar_downloader.rs
@@ -13,9 +13,7 @@ use crate::util::Filesystem;
use crate::util::HttpDownloader;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
-use shirabe_php_shim::{PharData, PhpMixed};
-
-shirabe_php_shim::impl_php_class!(TarDownloader, r"Composer\Downloader\TarDownloader");
+use shirabe_php_shim::{PharData, PhpMixed, impl_php_class};
#[derive(Debug)]
pub struct TarDownloader {
@@ -23,6 +21,8 @@ pub struct TarDownloader {
cleanup_executed: std::cell::RefCell<IndexMap<String, bool>>,
}
+impl_php_class!(TarDownloader, r"Composer\Downloader\TarDownloader");
+
impl TarDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/xz_downloader.rs b/crates/shirabe/src/downloader/xz_downloader.rs
index 6be5ea2e..49dd9deb 100644
--- a/crates/shirabe/src/downloader/xz_downloader.rs
+++ b/crates/shirabe/src/downloader/xz_downloader.rs
@@ -13,9 +13,7 @@ use crate::util::HttpDownloader;
use crate::util::ProcessExecutor;
use anyhow::bail;
use indexmap::IndexMap;
-use shirabe_php_shim::PhpMixed;
-
-shirabe_php_shim::impl_php_class!(XzDownloader, r"Composer\Downloader\XzDownloader");
+use shirabe_php_shim::{PhpMixed, impl_php_class};
#[derive(Debug)]
pub struct XzDownloader {
@@ -23,6 +21,8 @@ pub struct XzDownloader {
cleanup_executed: std::cell::RefCell<IndexMap<String, bool>>,
}
+impl_php_class!(XzDownloader, r"Composer\Downloader\XzDownloader");
+
impl XzDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
diff --git a/crates/shirabe/src/downloader/zip_downloader.rs b/crates/shirabe/src/downloader/zip_downloader.rs
index 9d7dbe7a..350ea738 100644
--- a/crates/shirabe/src/downloader/zip_downloader.rs
+++ b/crates/shirabe/src/downloader/zip_downloader.rs
@@ -13,8 +13,8 @@ use shirabe_external_packages::symfony::process::ExecutableFinder;
use shirabe_php_shim::{
DIRECTORY_SEPARATOR, ErrorException, PhpMixed, RuntimeException, UnexpectedValueException,
ZipArchive, bin2hex, class_exists, file_exists, file_get_contents, filesize, function_exists,
- hash_file, is_file, json_encode, php_regex, random_int, str_contains, str_replace, strlen,
- substr, version_compare,
+ hash_file, impl_php_class, is_file, json_encode, php_regex, random_int, str_contains,
+ str_replace, strlen, substr, version_compare,
};
use std::sync::Mutex;
@@ -22,8 +22,6 @@ static UNZIP_COMMANDS: Mutex<Option<Vec<Vec<String>>>> = Mutex::new(None);
static HAS_ZIP_ARCHIVE: Mutex<Option<bool>> = Mutex::new(None);
static IS_WINDOWS: Mutex<Option<bool>> = Mutex::new(None);
-shirabe_php_shim::impl_php_class!(ZipDownloader, r"Composer\Downloader\ZipDownloader");
-
#[derive(Debug)]
pub struct ZipDownloader {
inner: FileDownloader,
@@ -32,6 +30,8 @@ pub struct ZipDownloader {
zip_archive_object: std::cell::RefCell<Option<ZipArchive>>,
}
+impl_php_class!(ZipDownloader, r"Composer\Downloader\ZipDownloader");
+
impl ZipDownloader {
pub fn new(
io: std::rc::Rc<std::cell::RefCell<dyn crate::io::IOInterface>>,