|
| __construct (ObjectManagerInterface $objectManager, ManagerInterface $componentManager, InterpreterInterface $argumentInterpreter, ContextFactory $contextFactory, array $data=[], array $componentChildFactories=[], DataInterface $definitionData=null, DataInterfaceFactory $configFactory=null) |
|
| __construct (array $data=[]) |
|
| addData (array $arr) |
|
| setData ($key, $value=null) |
|
| unsetData ($key=null) |
|
| getData ($key='', $index=null) |
|
| getDataByPath ($path) |
|
| getDataByKey ($key) |
|
| setDataUsingMethod ($key, $args=[]) |
|
| getDataUsingMethod ($key, $args=null) |
|
| hasData ($key='') |
|
| toArray (array $keys=[]) |
|
| convertToArray (array $keys=[]) |
|
| toXml (array $keys=[], $rootName='item', $addOpenTag=false, $addCdata=true) |
|
| convertToXml (array $arrAttributes=[], $rootName='item', $addOpenTag=false, $addCdata=true) |
|
| toJson (array $keys=[]) |
|
| convertToJson (array $keys=[]) |
|
| toString ($format='') |
|
| __call ($method, $args) |
|
| isEmpty () |
|
| serialize ($keys=[], $valueSeparator='=', $fieldSeparator=' ', $quote='"') |
|
| debug ($data=null, &$objects=[]) |
|
| offsetSet ($offset, $value) |
|
| offsetExists ($offset) |
|
| offsetUnset ($offset) |
|
| offsetGet ($offset) |
|
|
| createChildComponent (array &$bundleComponents, ContextInterface $renderContext, $identifier, array $arguments=[]) |
|
| argumentsResolver ($identifier, array $componentData) |
|
| getBundleChildren (array $children=[]) |
|
| mergeMetadata ($identifier, array $bundleComponents, $reverseMerge=false) |
|
| mergeMetadataElement (array $bundleComponents, $name, array $data, $reverseMerge=false) |
|
| mergeMetadataItem (array $bundleComponents, array $metadata, $reverseMerge=false) |
|
| getDataProvider ($identifier, array $bundleComponents) |
|
| _getData ($key) |
|
| _underscore ($name) |
|
Class UiComponentFactory
@api @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- Since
- 100.0.2
Definition at line 29 of file UiComponentFactory.php.
◆ __construct()
- Parameters
-
ObjectManagerInterface | $objectManager | |
ManagerInterface | $componentManager | |
InterpreterInterface | $argumentInterpreter | |
ContextFactory | $contextFactory | |
DataInterfaceFactory | null | $configFactory | |
array | $data | |
array | $componentChildFactories | |
DataInterface | null | $definitionData | |
Definition at line 83 of file UiComponentFactory.php.
97 $this->componentChildFactories = $componentChildFactories;
98 $this->configFactory =
$configFactory ?: $this->objectManager->get(DataInterfaceFactory::class);
99 parent::__construct(
$data);
100 $this->definitionData = $definitionData ?:
101 $this->objectManager->get(DataInterface::class);
◆ argumentsResolver()
argumentsResolver |
( |
|
$identifier, |
|
|
array |
$componentData |
|
) |
| |
|
protected |
Resolve arguments
- Parameters
-
string | $identifier | |
array | $componentData | |
- Returns
- array
Definition at line 174 of file UiComponentFactory.php.
const COMPONENT_ARGUMENTS_KEY
const COMPONENT_ATTRIBUTES_KEY
◆ createChildComponent()
createChildComponent |
( |
array & |
$bundleComponents, |
|
|
ContextInterface |
$renderContext, |
|
|
|
$identifier, |
|
|
array |
$arguments = [] |
|
) |
| |
|
protected |
Create child components
- Parameters
-
array | $bundleComponents | |
ContextInterface | $renderContext | |
string | $identifier | |
array | $arguments | |
- Returns
- UiComponentInterface
Add an ability to fill component variables from child factory.
Factory return nothing because factory should put created components in the right place
Prevent passing ACL restricted blocks to htmlContent constructor
Definition at line 113 of file UiComponentFactory.php.
119 $componentArguments = &$bundleComponents[
'arguments'];
121 if (isset($componentArguments[
'data'][
'disabled']) && (
int)$componentArguments[
'data'][
'disabled']) {
128 $bundleComponents[
'components'] = [];
129 $components = &$bundleComponents[
'components'];
131 if (isset($this->componentChildFactories[
$className])) {
140 foreach ($bundleComponents[
'children'] as $childrenIdentifier => $childrenData) {
147 $components[$childrenIdentifier] =
$children;
150 $components = array_filter($components);
151 $componentArguments[
'components'] = $components;
156 if (isset($componentArguments[
'block']) && !$componentArguments[
'block']) {
160 if (!isset($componentArguments[
'context'])) {
161 $componentArguments[
'context'] = $renderContext;
164 return $this->objectManager->create(
$className, $componentArguments);
createChildComponent(array &$bundleComponents, ContextInterface $renderContext, $identifier, array $arguments=[])
argumentsResolver($identifier, array $componentData)
◆ getBundleChildren()
getBundleChildren |
( |
array |
$children = [] | ) |
|
|
protected |
Get bundle children
- Parameters
-
- Returns
- array
- Exceptions
-
- Since
- 100.1.0
Definition at line 263 of file UiComponentFactory.php.
265 $bundleChildren = [];
268 if (!isset(
$config[
'componentType'])) {
269 throw new LocalizedException(
new Phrase(
270 'The "componentType" configuration parameter is required for the "%1" component.',
275 if (!isset($componentArguments[
'context'])) {
276 throw new LocalizedException(
278 'An error occurred with the UI component. Each component needs context. Verify and try again.' 283 $rawComponentData = $this->definitionData->get(
$config[
'componentType']);
284 list(, $componentArguments) = $this->
argumentsResolver($identifier, $rawComponentData);
285 $arguments = array_replace_recursive($componentArguments, [
'data' => [
'config' =>
$config]]);
288 $bundleChildren[$identifier] = $rawComponentData;
289 $bundleChildren[$identifier][
'children'] = [];
291 if (isset(
$arguments[
'data'][
'config'][
'children'])) {
298 return $bundleChildren;
const COMPONENT_ARGUMENTS_KEY
getBundleChildren(array $children=[])
argumentsResolver($identifier, array $componentData)
◆ getDataProvider()
getDataProvider |
( |
|
$identifier, |
|
|
array |
$bundleComponents |
|
) |
| |
|
protected |
Find and return data provider
- Parameters
-
string | $identifier | |
array | $bundleComponents | |
- Returns
- DataProviderInterface|null
- Since
- 100.1.0
Definition at line 426 of file UiComponentFactory.php.
428 foreach ($bundleComponents[$identifier][
'children'] as $childrenData) {
429 if (isset($childrenData[
'arguments'][
'dataProvider'])
430 && $childrenData[
'arguments'][
'dataProvider'] instanceof DataProviderInterface
432 return $childrenData[
'arguments'][
'dataProvider'];
◆ mergeMetadata()
mergeMetadata |
( |
|
$identifier, |
|
|
array |
$bundleComponents, |
|
|
|
$reverseMerge = false |
|
) |
| |
|
protected |
Merge data provider's metadata to components
- Parameters
-
string | $identifier | |
array | $bundleComponents | |
bool | $reverseMerge | |
- Returns
- array
- Since
- 100.1.0
Definition at line 310 of file UiComponentFactory.php.
312 $dataProvider = $this->
getDataProvider($identifier, $bundleComponents);
313 if ($dataProvider instanceof DataProviderInterface) {
316 'children' => $dataProvider->getMeta(),
319 $bundleComponents = $this->
mergeMetadataItem($bundleComponents, $metadata, $reverseMerge);
322 return $bundleComponents;
getDataProvider($identifier, array $bundleComponents)
mergeMetadataItem(array $bundleComponents, array $metadata, $reverseMerge=false)
◆ mergeMetadataElement()
mergeMetadataElement |
( |
array |
$bundleComponents, |
|
|
|
$name, |
|
|
array |
$data, |
|
|
|
$reverseMerge = false |
|
) |
| |
|
protected |
Find element in components or its containers and merge data to it
- Parameters
-
array | $bundleComponents | |
string | $name | |
array | $data | |
bool | $reverseMerge | |
- Returns
- array
- Since
- 100.1.0
Definition at line 335 of file UiComponentFactory.php.
337 if (isset($bundleComponents[
$name])) {
338 $bundleComponents[
$name] = $reverseMerge
339 ? array_replace_recursive(
$data, $bundleComponents[
$name])
340 : array_replace_recursive($bundleComponents[
$name],
$data);
341 return [$bundleComponents,
true];
343 foreach ($bundleComponents as &$childData) {
344 if (isset($childData[
'attributes'][
'class'])
345 && is_a($childData[
'attributes'][
'class'], \
Magento\Ui\Component\Container::class,
true)
346 && isset($childData[
'children']) && is_array($childData[
'children'])
349 $childData[
'children'],
355 return [$bundleComponents,
true];
360 return [$bundleComponents,
false];
mergeMetadataElement(array $bundleComponents, $name, array $data, $reverseMerge=false)
if(!isset($_GET['name'])) $name
◆ mergeMetadataItem()
mergeMetadataItem |
( |
array |
$bundleComponents, |
|
|
array |
$metadata, |
|
|
|
$reverseMerge = false |
|
) |
| |
|
protected |
Merge metadata item to components
- Parameters
-
array | $bundleComponents | |
array | $metadata | |
bool | $reverseMerge | |
- Returns
- array
- Exceptions
-
- Since
- 100.1.0
Definition at line 373 of file UiComponentFactory.php.
377 if (isset($selfData[
'children'])) {
378 unset($selfData[
'children']);
389 if (!isset(
$data[
'arguments'][
'data'][
'config'][
'componentType'])) {
390 throw new LocalizedException(
new Phrase(
391 'The "componentType" configuration parameter is required for the "%1" component.',
395 $rawComponentData = $this->definitionData->get(
396 $data[
'arguments'][
'data'][
'config'][
'componentType']
399 $arguments = array_replace_recursive($componentArguments,
$data[
'arguments']);
402 $bundleComponents[
$name] = $rawComponentData;
403 $bundleComponents[
$name][
'children'] = [];
406 if (isset(
$data[
'children']) && is_array(
$data[
'children'])) {
408 $bundleComponents[
$name][
'children'],
415 return $bundleComponents;
const COMPONENT_ARGUMENTS_KEY
mergeMetadataElement(array $bundleComponents, $name, array $data, $reverseMerge=false)
mergeMetadataItem(array $bundleComponents, array $metadata, $reverseMerge=false)
argumentsResolver($identifier, array $componentData)
if(!isset($_GET['name'])) $name
◆ $argumentInterpreter
◆ $componentManager
◆ $contextFactory
◆ $objectManager
The documentation for this class was generated from the following file: