aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/dev
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev')
-rw-r--r--docs/dev/php-rpc.md7
-rw-r--r--docs/dev/plugin-stub-generation.md6
2 files changed, 6 insertions, 7 deletions
diff --git a/docs/dev/php-rpc.md b/docs/dev/php-rpc.md
index c833bbea..9e49dec0 100644
--- a/docs/dev/php-rpc.md
+++ b/docs/dev/php-rpc.md
@@ -18,10 +18,9 @@ behavior.
- A `socketpair(2)` (no Windows support for now). The parent keeps one end and installs the
other on descriptor 3 in the child, from a `pre_exec` hook, so the worker opens it as
`php://fd/3` rather than connecting anywhere. A bound path would have to fit in `sun_path`
- (108 bytes), which a long `TMPDIR` overruns, and it needs a `bind(2)` that sandboxes commonly
- deny. The pair is connected from the start, so nothing has to wait for an `accept` either: a
- child that dies before reading surfaces as EOF on the first call, with its exit status
- attached.
+ (108 bytes), which a long `TMPDIR` overruns. The pair is connected from the start, so nothing
+ has to wait for an `accept` either: a child that dies before reading surfaces as EOF on the
+ first call, with its exit status attached.
- The PHP glue code (`php/worker.php`) and the proxy stub classes (`php/stubs/`) are embedded in
the Rust binary and written to a `0700` temp dir at spawn time, so both halves of the protocol
are always the same commit.
diff --git a/docs/dev/plugin-stub-generation.md b/docs/dev/plugin-stub-generation.md
index 9743534a..68dde156 100644
--- a/docs/dev/plugin-stub-generation.md
+++ b/docs/dev/plugin-stub-generation.md
@@ -74,7 +74,8 @@ the generator's vendor directory or the classifier report is unavailable.
* **Class constants, static methods and public static properties** are
materialized verbatim from the real source (they read no instance state and
run locally in the worker), together with any non-public static helpers the
- methods call.
+ methods call. Constants keep their declared visibility, so a non-public one
+ stays unreadable from outside the stub as it is in the real class.
* **Instance properties** are not declared on the stub, whatever their
visibility: they are entity state. Every root stub instead carries
`__get`/`__set`/`__isset`/`__unset` forwarders, so each access reaches the
@@ -103,8 +104,7 @@ Generation fails — instead of emitting something quietly wrong — on:
* an omitted override diverging from the inherited stub signature,
* a subclass target listed before its base class, or extending a class that is
neither a target nor provided by `php/runtime/`,
-* a target whose FQCN is also provided by `php/runtime/`,
-* non-public class constants (materializing them is unsupported so far).
+* a target whose FQCN is also provided by `php/runtime/`.
`generate-stubs` (in both modes) additionally fails when a `.php` file exists
under the stubs directory that no target produces, or when `STUB_FILES` /