DynamicComponent
class DynamicComponent extends Component (View source)
Properties
protected array | $except | The properties / methods that should not be exposed to the component. |
from Component |
string | $componentName | The component alias name. |
from Component |
ComponentAttributeBag | $attributes | The component attributes. |
from Component |
static protected Factory|null | $factory | The view factory instance, if any. |
from Component |
static protected | $componentsResolver | The component resolver callback. |
from Component |
static protected array<string,string> | $bladeViewCache | The cache of blade view names, keyed by contents. |
from Component |
static protected array | $propertyCache | The cache of public property names, keyed by class. |
from Component |
static protected array | $methodCache | The cache of public method names, keyed by class. |
from Component |
static protected array<class-string,array<int,string>> | $constructorParametersCache | The cache of constructor parameters, keyed by class. |
from Component |
static protected array | $ignoredParameterNames | The cache of ignored parameter names. |
from Component |
string | $component | The name of the component. |
|
static protected BladeTagCompiler | $compiler | The component tag compiler instance. |
|
static protected array | $componentClasses | The cached component classes. |
Methods
Resolve the component instance with the given data.
Extract the constructor parameters for the component.
Resolve the Blade view or view file that should be used when rendering the component.
Create a Blade view with the raw component string content.
Create a Blade view with the raw component string content.
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.
Set the extra attributes that the component should make available.
Get a new attribute bag instance.
Get the evaluated view contents for the given view.
Get the cached set of anonymous component constructor parameter names to exclude.
Set the callback that should be used to resolve components within views.
Create a new component instance.
Compile the @props directive for the component.
Compile the bindings for the component.
Compile the slots for the component.
Get the class for the current component.
Get the names of the variables that should be bound to the component.
Get an instance of the Blade tag compiler.
Details
static Component
resolve(array $data)
Resolve the component instance with the given data.
static protected array
extractConstructorParameters()
Extract the constructor parameters for the component.
View|Htmlable|Closure|string
resolveView()
Resolve the Blade view or view file that should be used when rendering the component.
protected string
extractBladeViewFromString(string $contents)
Create a Blade view with the raw component string content.
protected string
createBladeViewFromString(Factory $factory, string $contents)
Create a Blade view with the raw component string content.
array
data()
Get the data that should be supplied to the view.
protected array
extractPublicProperties()
Extract the public properties for the component.
protected array
extractPublicMethods()
Extract the public methods for the component.
protected mixed
createVariableFromMethod(ReflectionMethod $method)
Create a callable variable from the given method.
protected InvokableComponentVariable
createInvokableVariable(string $method)
Create an invokable, toStringable variable for the given component method.
protected bool
shouldIgnore(string $name)
Determine if the given property / method should be ignored.
protected array
ignoredMethods()
Get the methods that should be ignored.
$this
withName(string $name)
Set the component alias name.
$this
withAttributes(array $attributes)
Set the extra attributes that the component should make available.
protected ComponentAttributeBag
newAttributeBag(array $attributes = [])
Get a new attribute bag instance.
bool
shouldRender()
Determine if the component should be rendered.
View
view(string|null $view, Arrayable|array $data = [], array $mergeData = [])
Get the evaluated view contents for the given view.
protected Factory
factory()
Get the view factory instance.
static array
ignoredParameterNames()
Get the cached set of anonymous component constructor parameter names to exclude.
static void
flushCache()
Flush the component's cached state.
static void
forgetFactory()
Forget the component's factory instance.
static void
forgetComponentsResolver()
internal |
Forget the component's resolver callback.
static void
resolveComponentsUsing($resolver)
internal |
Set the callback that should be used to resolve components within views.
void
__construct(string $component)
Create a new component instance.
protected string
compileProps(array $bindings)
Compile the @props directive for the component.
protected string
compileBindings(array $bindings)
Compile the bindings for the component.
protected string
compileSlots(array $slots)
Compile the slots for the component.
protected string
classForComponent()
Get the class for the current component.
protected array
bindings(string $class)
Get the names of the variables that should be bound to the component.
protected ComponentTagCompiler
compiler()
Get an instance of the Blade tag compiler.