aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-php-rpc/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-04 05:09:04 +0900
committernsfisis <nsfisis@gmail.com>2026-08-04 05:43:32 +0900
commit80631930a6ca7b64d96a89de61c8b63f302161a8 (patch)
treedc5acf4a8dbe74b576ec7826206defa0e3f8fba1 /crates/shirabe-php-rpc/src
parent850b67c048bbf80d9739520d950f4dd1ed4190a5 (diff)
downloadphp-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.tar.gz
php-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.tar.zst
php-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-php-rpc/src')
-rw-r--r--crates/shirabe-php-rpc/src/lib.rs44
1 files changed, 44 insertions, 0 deletions
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 {