From 24b40ddf5c7c94f1ce86f66bb73f9e17d380a978 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 9 Aug 2026 10:17:05 +0900 Subject: docs(known-incompatibilities): document that Reflection on Composer objects is unsupported Co-Authored-By: Claude Opus 5 (1M context) --- docs/known-incompatibilities.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'docs') diff --git a/docs/known-incompatibilities.md b/docs/known-incompatibilities.md index 7b9b6855..99c0e322 100644 --- a/docs/known-incompatibilities.md +++ b/docs/known-incompatibilities.md @@ -30,3 +30,15 @@ The following are intentionally left unchanged for ecosystem compatibility: * `vendor/composer/` directory TODO: a CLI flag or an environment variable to force Shirabe to use compatible paths. + + +## Plugins + +### Reflection + +Reflection on Composer's own objects (`$composer`, `$io`, and everything reachable from them) is +not supported. Their properties are invisible to `ReflectionClass::getProperties()` and cannot be +read or written through `ReflectionProperty`; only the public methods reach the real values. +`ReflectionClass::getFileName()` and the method bodies do not describe Composer's sources either. + +Reflection on objects a plugin creates itself works as usual. -- cgit v1.3.1-4-g156e