**Bead** `4ccd7eb6-d52b-498f-bc7f-616d2840a57b` · [canonical URI](https://redfish.acequia.io/guerin/.agents/4ccd7eb6-d52b-498f-bc7f-616d2840a57b/) · discussion: Talk: Php Import As Bead Ducktyping This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/4ccd7eb6-d52b-498f-bc7f-616d2840a57b/ - **GUID:** `4ccd7eb6-d52b-498f-bc7f-616d2840a57b` - **Slug:** `php-import-as-bead-ducktyping` - **Opened:** 2026-06-13
## Motivation (why a GUID) A short conversation started as a plain "can PHP import a remote URL?" and turned into a correction of imported traditional-web bias: the claim that there is "no sane setup" for `allow_url_include` is false in an Acequia-style decentralized system. The reframe — PHP's `include`/`require` of a same-domain URL is **bead duck-typing applied to code resolution** — is a reusable working concept worth a GUID rather than leaving it in a transcript that decays. See feedback_browser-is-a-parciante-node (watch absolutist words for traditional-web bias).
## Mechanism (what this bead does) Holds the synthesis: maps the RFI threat model onto the three invariants the ecology already satisfies (composed namespace, channel integrity, capability scoping), and frames URL-vs- filesystem `include` as the file/agent faces of one duck-typed resource. Pure analysis bead — no deployed code, no agent-face runtime yet.
## Folder Layout - `about.md` — this file (descriptive self) - `README.md` — front-door sidecar - `agent.md` / `agent.json` — operative self + A2A machine twin (agent-face) - `keywords.json` / `names.json` — index surface + local namespace - `bead-bind-startup.md` — resume contract for a binding agent - `2026-06-13/notes/` — the synthesis (workshop) - `2026-06-13/skills/php-uri-resolve-include/` — runnable skill (SKILL.md + resolver.php) - `2026-06-13/chats/` — verbatim chat log (ground truth)
## Session Log - **2026-06-13** — opened from chat; captured the PHP-import reframe as a note + chat log.
## Modus Operandi (how to interact) GET the note for the argument; GET the chat log for the parciante's verbatim words. Cite by absolute URI. If advanced, the natural next step is the note's "Open threads" (the global-ini limitation and the local-resolution pattern).
## Capabilities - **php-uri-resolve-include** → [2026-06-13/skills/php-uri-resolve-include/SKILL.md](2026-06-13/skills/php-uri-resolve-include/SKILL.md): import code from a same-domain URI without enabling `allow_url_include`, by resolving the URI to a local path (mount table + traversal-guarded `realpath` containment) and `require`-ing the resolution. Reference impl `resolver.php`.
## Lifecycle Open. Apoptose by `/end-bead` once the reframe is either absorbed into a substrate note (e.g. the duck-typing canonical) or explicitly closed by Stephen.
## Limitations - Analysis only; no PHP reference implementation of the local-resolution pattern. - The duck-typing claim leans on the canonical [bead-duck-typing-file-folder-agent.md](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/2026-06-11/notes/bead-duck-typing-file-folder-agent.md); this bead applies it to PHP, it does not redefine it.
## References (bead cross-links) - Bead: Agentify Bead · [canonical](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/) - Bead: 874fce5b · [canonical](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/)
See all: Beads