Component
abstract class Component
Properties
| protected array | $except | The properties / methods that should not be exposed to the component. |
|
| string|null | $componentName | The component alias name. |
|
| ComponentAttributeBag|null | $attributes | The component attributes. |
|
| static protected Factory|null | $factory | The view factory instance, if any. |
|
| static protected null|Closure(string, array): static | $componentsResolver | The component resolver callback. |
|
| static protected array<string, string> | $bladeViewCache | The cache of blade view names, keyed by contents. |
|
| static protected array | $propertyCache | The cache of public property names, keyed by class. |
|
| static protected array | $methodCache | The cache of public method names, keyed by class. |
|
| static protected array<class-string, array<int, string>> | $constructorParametersCache | The cache of constructor parameters, keyed by class. |
|
| static protected array | $ignoredParameterNames | The cache of ignored parameter names. |
Methods
Extract the constructor parameters for the component.
Resolve the Blade view or view file that should be used when rendering the component.
Resolve and cache the Blade view for the given component string.
Get the cache key for the given Blade view contents.
Create a Blade view with the raw component string content.
Get the data that should be supplied to the view.
Extract the public properties for the component.
Extract the public methods for the component.
Create a callable variable from the given method.
Create an invokable, toStringable variable for the given component method.
Determine if the given property / method should be ignored.
Get the methods that should be ignored.
Set the extra attributes that the component should make available.
Get a new attribute bag instance.
Determine if the component should be rendered.
Get the cached set of anonymous component constructor parameter names to exclude.
Flush the component's cached state.
Forget the cached Blade view name for the given contents.
Forget the component's factory instance.
Forget the component's resolver callback.
Set the callback that should be used to resolve components within views.
Flush all static state.
Details
at line 84
abstract View|Htmlable|Closure|string
render()
Get the view / view contents that represent the component.
at line 89
static Component
resolve(array $data)
Resolve the component instance with the given data.
at line 111
static protected array
extractConstructorParameters()
Extract the constructor parameters for the component.
at line 129
View|Htmlable|Closure|string
resolveView()
Resolve the Blade view or view file that should be used when rendering the component.
at line 158
protected string
extractBladeViewFromString(string $contents)
Resolve and cache the Blade view for the given component string.
at line 176
static protected string
bladeViewCacheKey(string $contents)
Get the cache key for the given Blade view contents.
at line 184
protected string
createBladeViewFromString(Factory $factory, string $contents)
Create a Blade view with the raw component string content.
at line 204
array
data()
Get the data that should be supplied to the view.
at line 214
protected array
extractPublicProperties()
Extract the public properties for the component.
at line 239
protected array
extractPublicMethods()
Extract the public methods for the component.
at line 263
protected mixed
createVariableFromMethod(ReflectionMethod $method)
Create a callable variable from the given method.
at line 275
protected InvokableComponentVariable
createInvokableVariable(string $method)
Create an invokable, toStringable variable for the given component method.
at line 285
protected bool
shouldIgnore(string $name)
Determine if the given property / method should be ignored.
at line 294
protected array
ignoredMethods()
Get the methods that should be ignored.
at line 320
Component
withName(string $name)
Set the component alias name.
at line 332
Component
withAttributes(array $attributes)
Set the extra attributes that the component should make available.
at line 344
protected ComponentAttributeBag
newAttributeBag(array $attributes = [])
Get a new attribute bag instance.
at line 352
bool
shouldRender()
Determine if the component should be rendered.
at line 360
View
view(string|null $view, Arrayable|array $data = [], array $mergeData = [])
Get the evaluated view contents for the given view.
at line 368
protected Factory
factory()
Get the view factory instance.
at line 380
static array
ignoredParameterNames()
Get the cached set of anonymous component constructor parameter names to exclude.
at line 406
static void
flushCache()
Flush the component's cached state.
Clears the worker-wide reflection and view caches shared by every coroutine; next render rebuilds them. The view:clear command owns runtime invalidation.
at line 420
static void
forgetBladeView(string $contents)
| internal |
Forget the cached Blade view name for the given contents.
at line 431
static void
forgetFactory()
Forget the component's factory instance.
Clears the worker-wide ViewFactory reference shared by every coroutine; next render re-resolves it from the container.
at line 445
static void
forgetComponentsResolver()
| internal |
Forget the component's resolver callback.
Clears the worker-wide resolver shared by every coroutine; next component resolution falls back to default behavior.
at line 461
static void
resolveComponentsUsing(Closure $resolver)
| internal |
Set the callback that should be used to resolve components within views.
The resolver persists in a static property for the worker lifetime and runs on every subsequent component resolution.
at line 470
static void
flushState()
Flush all static state.