implements |
ParameterPipelineInterface |
|---|
The Parameter API pipeline — both builder and runner (D2).
Pins exactly one first() source and one last() source; interior
sources sit between. Builder methods return $this for fluent
chaining. The chain is held as a flat ordered list of source class
names; sources are resolved from the Laravel container on each
resolve() call (so they pick up per-request dependencies like
Request via constructor injection).
Per-call hot-plumbing. The pipeline is bound via bind in the
service provider (fresh instance per container resolution). A consumer
that mutates the chain with before() / after() does not leak that
mutation to other callers within the same request.
Linearity. The chain is structurally linear by construction —
before() and after() insert at a specific position relative to an
existing source; duplicate registration is forbidden. Cycles are
therefore impossible, and nothing throws ParameterPipelineCycleException
(deprecated since 2.11.0, removed in 3.0).
Typed output (P5). Every value leaves resolve() in the one form its
slot's declared type names ({@see SlotValueCaster}), whichever source filled
it. A value without such a form is refused loudly: a 422 when the request
supplied it, a reported exception when a server-side source did. It is never
skipped in favour of a later source — that would answer a broken request
with the default and hide the mistake.
| Methods | ||
|---|---|---|
public
|
__construct(Container $container)
|
# |
public
|
first(string $sourceClass): self
|
# |
public
|
then(string $sourceClass): self
|
# |
public
|
last(string $sourceClass): self
|
# |
public
|
before(string $existingSource, string $newSource): self
|
# |
public
|
after(string $existingSource, string $newSource): self
|
# |
public
|
resolve(array $slots): array
|
# |
public
|
chain(): class-string<ParameterSourceInterface>[]
|
# |