Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
Builder Class Reference

Public Member Functions

 __construct (\Magento\Framework\Validator\ConstraintFactory $constraintFactory, \Magento\Framework\ValidatorFactory $validatorFactory, \Magento\Framework\Validator\UniversalFactory $oneValidatorFactory, array $constraints)
 
 createValidator ()
 
 addConfiguration ($alias, array $configuration)
 
 addConfigurations (array $configurations)
 

Protected Member Functions

 _checkConfigurationArguments (array $configuration, $argumentsIsArray)
 
 _checkMethodArguments (array $configuration)
 
 _checkConfigurationCallback (array $configuration, $callbackIsArray)
 
 _createValidatorInstance ()
 
 _addConstraintCallback (array $constraint, \Magento\Framework\Validator\Constraint\Option\Callback $callback)
 
 _addConstraintMethod (array $constraint, array $configuration)
 
 _createConstraint (array $data)
 
 _createConstraintValidator (array $data)
 
 _applyArgumentsCallback (array $arguments)
 

Protected Attributes

 $_constraints
 
 $_constraintFactory
 
 $_validatorFactory
 
 $_oneValidatorFactory
 

Detailed Description

Definition at line 13 of file Builder.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Validator\ConstraintFactory  $constraintFactory,
\Magento\Framework\ValidatorFactory  $validatorFactory,
\Magento\Framework\Validator\UniversalFactory  $oneValidatorFactory,
array  $constraints 
)
Parameters
\Magento\Framework\Validator\ConstraintFactory$constraintFactory
\Magento\Framework\ValidatorFactory$validatorFactory
\Magento\Framework\Validator\UniversalFactory$oneValidatorFactory
array$constraints

Definition at line 41 of file Builder.php.

46  {
47  foreach ($constraints as $constraint) {
48  if (isset($constraint['options']) && is_array($constraint['options'])) {
49  $this->_checkConfigurationArguments($constraint['options'], true);
50  $this->_checkConfigurationCallback($constraint['options'], true);
51  }
52  }
53  $this->_constraints = $constraints;
54  $this->_constraintFactory = $constraintFactory;
55  $this->_validatorFactory = $validatorFactory;
56  $this->_oneValidatorFactory = $oneValidatorFactory;
57  }
_checkConfigurationCallback(array $configuration, $callbackIsArray)
Definition: Builder.php:116
_checkConfigurationArguments(array $configuration, $argumentsIsArray)
Definition: Builder.php:67

Member Function Documentation

◆ _addConstraintCallback()

_addConstraintCallback ( array  $constraint,
\Magento\Framework\Validator\Constraint\Option\Callback  $callback 
)
protected

Add callback to constraint configuration

Parameters
array$constraint
\Magento\Framework\Validator\Constraint\Option\Callback$callback
Returns
array

Definition at line 200 of file Builder.php.

203  {
204  if (!array_key_exists('callback', $constraint['options'])) {
205  $constraint['options']['callback'] = [];
206  }
207  $constraint['options']['callback'][] = $callback;
208  return $constraint;
209  }

◆ _addConstraintMethod()

_addConstraintMethod ( array  $constraint,
array  $configuration 
)
protected

Add method to constraint configuration

Parameters
array$constraint
array$configuration
Returns
array

Definition at line 218 of file Builder.php.

219  {
220  if (!array_key_exists('methods', $constraint['options'])) {
221  $constraint['options']['methods'] = [];
222  }
223  $constraint['options']['methods'][] = $configuration;
224  return $constraint;
225  }
$configuration
Definition: index.php:33

◆ _applyArgumentsCallback()

_applyArgumentsCallback ( array  $arguments)
protected

Apply all argument callback

Parameters
OptionInterface[]$arguments
Returns
OptionInterface[]

Definition at line 343 of file Builder.php.

344  {
345  foreach ($arguments as &$argument) {
346  if (is_array($argument)) {
347  $argument = $this->_applyArgumentsCallback($argument);
348  } elseif ($argument instanceof OptionInterface) {
349  $argument = $argument->getValue();
350  }
351  }
352  return $arguments;
353  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
_applyArgumentsCallback(array $arguments)
Definition: Builder.php:343
$arguments

◆ _checkConfigurationArguments()

_checkConfigurationArguments ( array  $configuration,
  $argumentsIsArray 
)
protected

Check configuration arguments

Parameters
array$configuration
bool$argumentsIsArray
Returns
void
Exceptions

Definition at line 67 of file Builder.php.

68  {
69  // https://jira.corp.x.com/browse/MAGETWO-10439
70  $allowedKeys = ['arguments', 'callback', 'method', 'methods', 'breakChainOnFailure'];
71  if (!array_intersect($allowedKeys, array_keys($configuration))) {
72  throw new \InvalidArgumentException('Configuration has incorrect format');
73  }
74  // Check method arguments
75  if ($argumentsIsArray) {
76  if (array_key_exists('methods', $configuration)) {
77  foreach ($configuration['methods'] as $method) {
78  $this->_checkMethodArguments($method);
79  }
80  }
81  } elseif (array_key_exists('method', $configuration)) {
83  }
84 
85  // Check constructor arguments
86  if (array_key_exists('arguments', $configuration) && !is_array($configuration['arguments'])) {
87  throw new \InvalidArgumentException('Arguments must be an array');
88  }
89  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$configuration
Definition: index.php:33
_checkMethodArguments(array $configuration)
Definition: Builder.php:98
$method
Definition: info.phtml:13

◆ _checkConfigurationCallback()

_checkConfigurationCallback ( array  $configuration,
  $callbackIsArray 
)
protected

Check configuration callbacks

Parameters
array$configuration
bool$callbackIsArray
Returns
void
Exceptions

Definition at line 116 of file Builder.php.

117  {
118  if (array_key_exists('callback', $configuration)) {
119  if ($callbackIsArray) {
120  $callbacks = $configuration['callback'];
121  } else {
122  $callbacks = [$configuration['callback']];
123  }
124  foreach ($callbacks as $callback) {
125  if (!$callback instanceof \Magento\Framework\Validator\Constraint\Option\Callback) {
126  throw new \InvalidArgumentException(
127  'Callback must be instance of \Magento\Framework\Validator\Constraint\Option\Callback'
128  );
129  }
130  }
131  }
132  }
$configuration
Definition: index.php:33

◆ _checkMethodArguments()

_checkMethodArguments ( array  $configuration)
protected

Check configuration method arguments

Parameters
array$configuration
Returns
void
Exceptions

Definition at line 98 of file Builder.php.

99  {
100  if (!is_string($configuration['method'])) {
101  throw new \InvalidArgumentException('Method has to be passed as string');
102  }
103  if (array_key_exists('arguments', $configuration) && !is_array($configuration['arguments'])) {
104  throw new \InvalidArgumentException('Method arguments must be an array');
105  }
106  }
$configuration
Definition: index.php:33

◆ _createConstraint()

_createConstraint ( array  $data)
protected

Create constraint from data

Parameters
array$data
Returns
\Magento\Framework\Validator\Constraint

Definition at line 249 of file Builder.php.

250  {
251  // Create validator instance
252  $validator = $this->_createConstraintValidator($data);
253  if (isset($data['options']) && is_array($data['options'])) {
254  $this->_configureConstraintValidator($validator, $data['options']);
255  }
256 
257  if (\Magento\Framework\Validator\Config::CONSTRAINT_TYPE_PROPERTY == $data['type']) {
258  $result = new \Magento\Framework\Validator\Constraint\Property(
259  $validator,
260  $data['property'],
261  $data['alias']
262  );
263  } else {
264  $result = $this->_constraintFactory->create(['validator' => $validator, 'alias' => $data['alias']]);
265  }
266 
267  return $result;
268  }

◆ _createConstraintValidator()

_createConstraintValidator ( array  $data)
protected

Create constraint validator instance

Parameters
array$data
Returns
\Magento\Framework\Validator\ValidatorInterface
Exceptions

Definition at line 277 of file Builder.php.

278  {
279  $validator = $this->_oneValidatorFactory->create(
280  $data['class'],
281  isset(
282  $data['options']['arguments']
283  ) ? $this->_applyArgumentsCallback(
284  $data['options']['arguments']
285  ) : []
286  );
287 
288  // Check validator type
289  if (!$validator instanceof \Magento\Framework\Validator\ValidatorInterface) {
290  throw new \InvalidArgumentException(
291  sprintf(
292  'Constraint class "%s" must implement \Magento\Framework\Validator\ValidatorInterface',
293  $data['class']
294  )
295  );
296  }
297 
298  return $validator;
299  }
_applyArgumentsCallback(array $arguments)
Definition: Builder.php:343

◆ _createValidatorInstance()

_createValidatorInstance ( )
protected

Get validator instance

Returns
\Magento\Framework\Validator

Definition at line 149 of file Builder.php.

150  {
151  $validator = $this->_validatorFactory->create();
152  foreach ($this->_constraints as $constraintData) {
153  // https://jira.corp.x.com/browse/MAGETWO-10439
154  $breakChainOnFailure = !empty($constraintData['options']['breakChainOnFailure']);
155  $validator->addValidator($this->_createConstraint($constraintData), $breakChainOnFailure);
156  }
157  return $validator;
158  }

◆ addConfiguration()

addConfiguration (   $alias,
array  $configuration 
)

Add constraint configuration

Parameters
string$alias
array$configuration
Returns
$this
Exceptions

Definition at line 168 of file Builder.php.

169  {
172  foreach ($this->_constraints as &$constraint) {
173  if ($constraint['alias'] != $alias) {
174  continue;
175  }
176  if (!array_key_exists('options', $constraint) || !is_array($constraint['options'])) {
177  $constraint['options'] = [];
178  }
179  if (!array_key_exists('method', $configuration)) {
180  if (array_key_exists('arguments', $configuration)) {
181  $constraint['options']['arguments'] = $configuration['arguments'];
182  } elseif (array_key_exists('callback', $configuration)) {
183  $constraint = $this->_addConstraintCallback($constraint, $configuration['callback']);
184  }
185  } else {
186  $constraint = $this->_addConstraintMethod($constraint, $configuration);
187  }
188  }
189 
190  return $this;
191  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$configuration
Definition: index.php:33
_checkConfigurationCallback(array $configuration, $callbackIsArray)
Definition: Builder.php:116
if(!trim($html)) $alias
Definition: details.phtml:20
_checkConfigurationArguments(array $configuration, $argumentsIsArray)
Definition: Builder.php:67
_addConstraintCallback(array $constraint, \Magento\Framework\Validator\Constraint\Option\Callback $callback)
Definition: Builder.php:200
_addConstraintMethod(array $constraint, array $configuration)
Definition: Builder.php:218

◆ addConfigurations()

addConfigurations ( array  $configurations)

Add constraints configuration

Parameters
array$configurations
Returns
$this

Definition at line 233 of file Builder.php.

234  {
235  foreach ($configurations as $alias => $concreteConfigs) {
236  foreach ($concreteConfigs as $configuration) {
237  $this->addConfiguration($alias, $configuration);
238  }
239  }
240  return $this;
241  }
$configuration
Definition: index.php:33
if(!trim($html)) $alias
Definition: details.phtml:20
addConfiguration($alias, array $configuration)
Definition: Builder.php:168

◆ createValidator()

createValidator ( )

Create validator instance and configure it

Returns
\Magento\Framework\Validator

Definition at line 139 of file Builder.php.

140  {
141  return $this->_createValidatorInstance();
142  }

Field Documentation

◆ $_constraintFactory

$_constraintFactory
protected

Definition at line 23 of file Builder.php.

◆ $_constraints

$_constraints
protected

Definition at line 18 of file Builder.php.

◆ $_oneValidatorFactory

$_oneValidatorFactory
protected

Definition at line 33 of file Builder.php.

◆ $_validatorFactory

$_validatorFactory
protected

Definition at line 28 of file Builder.php.


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