Canonical
class Canonical extends TagBuilder
Properties
| static protected null|Closure(): ?string | $originResolver |
Methods
Get the builder key.
Overlay this URL while inheriting unspecified normalization options.
Canonical builders always carry a resolution mode, so they are never empty.
Get the dot-notated key this builder occupies in the Head::toArray() result.
Get the value used in Head::toArray() when this builder has no data.
Get the route attribute keys this builder accepts values for.
Build a canonical URL from a route attribute.
Determine if the builder should render even when no data was set.
Resolve a string or string-backed enum value.
Normalize a route attribute value into a list of items.
Create a canonical URL definition.
Use a null $url to resolve the canonical URL from the current request.
Register a resolver for automatic and relative canonical origins.
Normalize the origin and path without changing the query or fragment.
Flush all static state.
Details
at line 37
static string
key()
Get the builder key.
at line 70
TagBuilder
overlayOn(TagBuilder|null $base)
Overlay this URL while inheriting unspecified normalization options.
at line 87
bool
isEmpty()
Canonical builders always carry a resolution mode, so they are never empty.
in
TagBuilder at line 32
static string
headArrayKey()
Get the dot-notated key this builder occupies in the Head::toArray() result.
in
TagBuilder at line 40
static mixed
headArrayDefault()
Get the value used in Head::toArray() when this builder has no data.
in
TagBuilder at line 50
static array
routeAttributeKeys()
Get the route attribute keys this builder accepts values for.
at line 53
static TagBuilder|null
fromRouteAttribute(string $key, mixed $value)
Build a canonical URL from a route attribute.
in
TagBuilder at line 66
static bool
rendersWhenEmpty(ResolvedHead $head)
Determine if the builder should render even when no data was set.
in
TagBuilder at line 74
TagBuilder
asDefaults()
Mark the builder's data as belonging to the defaults layer.
at line 113
mixed
toHeadArray(ResolvedHead $head)
Get the resolved canonical URL for the head array.
at line 123
array
toTags(ResolvedHead $head, TagRenderer $tags)
Render the canonical link tag.
in
TagBuilder at line 100
static protected string|null
string(mixed $value)
Return the value when it is a string.
in
TagBuilder at line 108
static protected string|null
stringOrBackedEnum(mixed $value)
Resolve a string or string-backed enum value.
in
TagBuilder at line 124
static protected bool|null
bool(mixed $value)
Return the value when it is a boolean.
in
TagBuilder at line 132
static protected int|null
int(mixed $value)
Return the value when it is an integer.
in
TagBuilder at line 142
static protected array
items(mixed $value)
Normalize a route attribute value into a list of items.
in
TagBuilder at line 153
static protected array
named(array $values)
Filter an array down to its string-keyed values.
at line 26
__construct(string $mode, string|null $url = null, bool|null $forceHttps = null, bool|null $trailingSlash = null)
Create a canonical URL definition.
at line 45
static Canonical
make(string|null $url = null, bool|null $forceHttps = null, bool|null $trailingSlash = null)
Use a null $url to resolve the canonical URL from the current request.
at line 95
string|null
render(Request|null $request)
Resolve and normalize the canonical URL.
at line 171
static void
resolveOriginUsing(Closure|null $resolver)
Register a resolver for automatic and relative canonical origins.
The callback persists in a static property and affects every request in the worker.
at line 180
protected string
normalizeUrl(string $url, Request|null $request, bool $forceHttps, bool $trailingSlash)
Normalize the origin and path without changing the query or fragment.
at line 219
static void
flushState()
Flush all static state.