From 80631930a6ca7b64d96a89de61c8b63f302161a8 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 4 Aug 2026 05:09:04 +0900 Subject: feat(plugin): generate proxy stubs for the package and repository graph Emit the eleven stubs a subscriber plugin's object-graph calls reach (BasePackage through RootPackage, the installed-repository hierarchy, RepositoryManager, InstallationManager). The generator learns the member kinds these classes need: builtin interfaces contribute no closure entries, public static properties are materialized, public instance properties forward through __get/__set, __toString forwards like a plain method, __clone throws (proxy clone semantics are still an open design question), and a subclass stub may add interfaces to its inherited surface. Co-Authored-By: Claude Fable 5 --- crates/shirabe-php-rpc/src/lib.rs | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'crates/shirabe-php-rpc/src/lib.rs') diff --git a/crates/shirabe-php-rpc/src/lib.rs b/crates/shirabe-php-rpc/src/lib.rs index e41f289f..ba5443d2 100644 --- a/crates/shirabe-php-rpc/src/lib.rs +++ b/crates/shirabe-php-rpc/src/lib.rs @@ -594,6 +594,50 @@ const STUB_FILES: &[(&str, &str)] = &[ "Composer/IO/NullIO.php", include_str!("../php/stubs/Composer/IO/NullIO.php"), ), + ( + "Composer/Package/BasePackage.php", + include_str!("../php/stubs/Composer/Package/BasePackage.php"), + ), + ( + "Composer/Package/Package.php", + include_str!("../php/stubs/Composer/Package/Package.php"), + ), + ( + "Composer/Package/CompletePackage.php", + include_str!("../php/stubs/Composer/Package/CompletePackage.php"), + ), + ( + "Composer/Package/RootPackage.php", + include_str!("../php/stubs/Composer/Package/RootPackage.php"), + ), + ( + "Composer/Repository/ArrayRepository.php", + include_str!("../php/stubs/Composer/Repository/ArrayRepository.php"), + ), + ( + "Composer/Repository/WritableArrayRepository.php", + include_str!("../php/stubs/Composer/Repository/WritableArrayRepository.php"), + ), + ( + "Composer/Repository/InstalledArrayRepository.php", + include_str!("../php/stubs/Composer/Repository/InstalledArrayRepository.php"), + ), + ( + "Composer/Repository/FilesystemRepository.php", + include_str!("../php/stubs/Composer/Repository/FilesystemRepository.php"), + ), + ( + "Composer/Repository/InstalledFilesystemRepository.php", + include_str!("../php/stubs/Composer/Repository/InstalledFilesystemRepository.php"), + ), + ( + "Composer/Repository/RepositoryManager.php", + include_str!("../php/stubs/Composer/Repository/RepositoryManager.php"), + ), + ( + "Composer/Installer/InstallationManager.php", + include_str!("../php/stubs/Composer/Installer/InstallationManager.php"), + ), ]; struct Worker { -- cgit v1.3.1