diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/dev/php-rpc.md | 7 | ||||
| -rw-r--r-- | docs/dev/plugin-stub-generation.md | 6 |
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` / |
