Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
Config Class Reference
Inheritance diagram for Config:
AbstractXml

Public Member Functions

 __construct ( $configFiles, \Magento\Framework\Config\DomFactory $domFactory, \Magento\Framework\Validator\UniversalFactory $builderFactory)
 
 createValidatorBuilder ($entityName, $groupName, array $builderConfig=null)
 
 createValidator ($entityName, $groupName, array $builderConfig=null)
 
 getSchemaFile ()
 
- Public Member Functions inherited from AbstractXml
 __construct ( $configFiles, \Magento\Framework\Config\DomFactory $domFactory)
 
 getSchemaFile ()
 
 getPerFileSchemaFile ()
 

Data Fields

const CONSTRAINT_TYPE_ENTITY = 'entity'
 
const CONSTRAINT_TYPE_PROPERTY = 'property'
 

Protected Member Functions

 _extractConstraintOptions (\DOMElement $constraint)
 
 _getInitialXml ()
 
 _getIdAttributes ()
 
- Protected Member Functions inherited from AbstractXml
 _extractData (\DOMDocument $dom)
 
 _merge ($configFiles)
 
 _performValidate ($file=null)
 
 _getDomConfigModel ()
 
 _getInitialXml ()
 
 _getIdAttributes ()
 

Protected Attributes

 $_defaultBuilderClass = \Magento\Framework\Validator\Builder::class
 
 $_builderFactory
 
- Protected Attributes inherited from AbstractXml
 $_data
 
 $_domConfig = null
 
 $domFactory
 

Detailed Description

Definition at line 14 of file Config.php.

Constructor & Destructor Documentation

◆ __construct()

__construct (   $configFiles,
\Magento\Framework\Config\DomFactory  $domFactory,
\Magento\Framework\Validator\UniversalFactory  $builderFactory 
)
Parameters
array$configFiles
\Magento\Framework\Config\DomFactory$domFactory
\Magento\Framework\Validator\UniversalFactory$builderFactory

Definition at line 37 of file Config.php.

41  {
42  $this->_builderFactory = $builderFactory;
43  parent::__construct($configFiles, $domFactory);
44  }

Member Function Documentation

◆ _extractConstraintOptions()

_extractConstraintOptions ( \DOMElement  $constraint)
protected

Extract constraint options.

Parameters
\DOMElement$constraint
Returns
array|null

Read constructor arguments

<constraint class="Constraint"> <argument> <option name="minValue">123</option> <option name="maxValue">234</option> </argument> <argument>0</argument> <argument> <callback class="Class" method="method"> </argument> </constraint>

Read constraint configurator callback

<constraint class="Constraint"> <callback class="Magento\Foo\Helper\Data" method="configureValidator"> </constraint>

Read constraint method configuration

Definition at line 208 of file Config.php.

209  {
210  if (!$constraint->hasChildNodes()) {
211  return null;
212  }
213  $options = [];
214  $children = $this->_collectChildren($constraint);
215 
230  $arguments = $this->_readArguments($children);
231  if ($arguments) {
232  $options['arguments'] = $arguments;
233  }
234 
242  $callback = $this->_readCallback($children);
243  if ($callback) {
244  $options['callback'] = $callback;
245  }
246 
250  $methods = $this->_readMethods($children);
251  if ($methods) {
252  $options['methods'] = $methods;
253  }
254  return $options;
255  }
$methods
Definition: billing.phtml:71
$arguments
$children
Definition: actions.phtml:11

◆ _getIdAttributes()

_getIdAttributes ( )
protected

Define id attributes for entities

Returns
array

Definition at line 422 of file Config.php.

423  {
424  return [
425  '/validation/entity' => 'name',
426  '/validation/entity/rules/rule' => 'name',
427  '/validation/entity/rules/rule/entity_constraints/constraint' => 'class',
428  '/validation/entity/rules/rule/property_constraints/property/constraint' => 'class',
429  '/validation/entity/rules/rule/property_constraints/property' => 'name',
430  '/validation/entity/groups/group' => 'name',
431  '/validation/entity/groups/group/uses/use' => 'rule'
432  ];
433  }

◆ _getInitialXml()

_getInitialXml ( )
protected

Get initial XML of a valid document.

Returns
string

Definition at line 411 of file Config.php.

412  {
413  return '<?xml version="1.0" encoding="UTF-8"?>' .
414  '<validation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></validation>';
415  }

◆ createValidator()

createValidator (   $entityName,
  $groupName,
array  $builderConfig = null 
)

Create validator based on entity and group.

Parameters
string$entityName
string$groupName
array | null$builderConfig
Returns
\Magento\Framework\Validator

Definition at line 98 of file Config.php.

99  {
100  return $this->createValidatorBuilder($entityName, $groupName, $builderConfig)->createValidator();
101  }
createValidatorBuilder($entityName, $groupName, array $builderConfig=null)
Definition: Config.php:55

◆ createValidatorBuilder()

createValidatorBuilder (   $entityName,
  $groupName,
array  $builderConfig = null 
)

Create validator builder instance based on entity and group.

Parameters
string$entityName
string$groupName
array | null$builderConfig
Exceptions

Definition at line 55 of file Config.php.

56  {
57  if (!isset($this->_data[$entityName])) {
58  throw new \InvalidArgumentException(sprintf('Unknown validation entity "%s"', $entityName));
59  }
60 
61  if (!isset($this->_data[$entityName][$groupName])) {
62  throw new \InvalidArgumentException(
63  sprintf('Unknown validation group "%s" in entity "%s"', $groupName, $entityName)
64  );
65  }
66 
67  $builderClass = isset(
68  $this->_data[$entityName][$groupName]['builder']
69  ) ? $this->_data[$entityName][$groupName]['builder'] : $this->_defaultBuilderClass;
70 
71  if (!class_exists($builderClass)) {
72  throw new \InvalidArgumentException(sprintf('Builder class "%s" was not found', $builderClass));
73  }
74 
75  $builder = $this->_builderFactory->create(
76  $builderClass,
77  ['constraints' => $this->_data[$entityName][$groupName]['constraints']]
78  );
79  if (!$builder instanceof \Magento\Framework\Validator\Builder) {
80  throw new \InvalidArgumentException(
81  sprintf('Builder "%s" must extend \Magento\Framework\Validator\Builder', $builderClass)
82  );
83  }
84  if ($builderConfig) {
85  $builder->addConfigurations($builderConfig);
86  }
87  return $builder;
88  }

◆ getSchemaFile()

getSchemaFile ( )

Get absolute path to validation.xsd

Returns
string

Definition at line 401 of file Config.php.

402  {
403  return __DIR__ . '/etc/validation.xsd';
404  }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60

Field Documentation

◆ $_builderFactory

$_builderFactory
protected

Definition at line 30 of file Config.php.

◆ $_defaultBuilderClass

$_defaultBuilderClass = \Magento\Framework\Validator\Builder::class
protected

#- #-

Definition at line 25 of file Config.php.

◆ CONSTRAINT_TYPE_ENTITY

const CONSTRAINT_TYPE_ENTITY = 'entity'

#+ Constraints types

Definition at line 19 of file Config.php.

◆ CONSTRAINT_TYPE_PROPERTY

const CONSTRAINT_TYPE_PROPERTY = 'property'

Definition at line 21 of file Config.php.


The documentation for this class was generated from the following file: