aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-09 10:17:05 +0900
committernsfisis <nsfisis@gmail.com>2026-08-09 10:17:05 +0900
commit24b40ddf5c7c94f1ce86f66bb73f9e17d380a978 (patch)
treef73964920c44678ae042c243bfd62d00c0da6bf9 /docs
parent5186c79b12ea587b4471797af180cf3fd2652aa6 (diff)
downloadphp-shirabe-24b40ddf5c7c94f1ce86f66bb73f9e17d380a978.tar.gz
php-shirabe-24b40ddf5c7c94f1ce86f66bb73f9e17d380a978.tar.zst
php-shirabe-24b40ddf5c7c94f1ce86f66bb73f9e17d380a978.zip
docs(known-incompatibilities): document that Reflection on Composer objects is unsupported
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/known-incompatibilities.md12
1 files changed, 12 insertions, 0 deletions
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.