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
Inheritance diagram for Builder:
OriginalSequenceBuilder Builder

Public Member Functions

 __construct (ResourceMetadata $resourceMetadata, MetaFactory $metaFactory, ProfileFactory $profileFactory, AppResource $appResource, DdlSequence $ddlSequence, Logger $logger)
 
 setEntityType ($entityType)
 
 setStoreId ($storeId)
 
 setPrefix ($prefix)
 
 setSuffix ($suffix)
 
 setStartValue ($startValue)
 
 setStep ($step)
 
 setMaxValue ($maxValue)
 
 setWarningValue ($warningValue)
 
 create ()
 

Protected Member Functions

 getSequenceName ()
 

Protected Attributes

 $resourceMetadata
 
 $profileFactory
 
 $metaFactory
 
 $appResource
 
 $ddlSequence
 
 $required
 
 $pattern
 
 $data = []
 
 $logger
 

Detailed Description

Class Builder

@api @SuppressWarnings(PHPMD.CouplingBetweenObjects)

Since
100.0.2

Definition at line 21 of file Builder.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( ResourceMetadata  $resourceMetadata,
MetaFactory  $metaFactory,
ProfileFactory  $profileFactory,
AppResource  $appResource,
DdlSequence  $ddlSequence,
Logger  $logger 
)
Parameters
ResourceMetadata$resourceMetadata
MetaFactory$metaFactory
ProfileFactory$profileFactory
AppResource$appResource
DdlSequence$ddlSequence
Logger$logger

Definition at line 94 of file Builder.php.

101  {
102  $this->resourceMetadata = $resourceMetadata;
103  $this->metaFactory = $metaFactory;
104  $this->profileFactory = $profileFactory;
105  $this->appResource = $appResource;
106  $this->ddlSequence = $ddlSequence;
107  $this->logger = $logger;
108  $this->data = array_flip($this->pattern);
109  }

Member Function Documentation

◆ create()

create ( )

Create sequence with metadata and profile

Exceptions

Definition at line 214 of file Builder.php.

215  {
216  $metadata = $this->resourceMetadata->loadByEntityTypeAndStore(
217  $this->data['entity_type'],
218  $this->data['store_id']
219  );
220  if ($metadata->getSequenceTable() == $this->getSequenceName()) {
221  return;
222  }
223  $this->data['sequence_table'] = $this->getSequenceName();
224  $this->data['is_active'] = 1;
225  $profile = $this->profileFactory->create(
226  [
227  'data' => array_intersect_key(
228  $this->data,
229  array_flip(
230  [
231  'prefix', 'suffix', 'start_value', 'step', 'max_value', 'warning_value',
232  'is_active', 'active_profile'
233  ]
234  )
235  )
236  ]
237  );
238  $profile->setHasDataChanges(true);
239  $this->data['active_profile'] = $profile;
240  $metadata = $this->metaFactory->create(
241  [
242  'data' => array_intersect_key(
243  $this->data,
244  array_flip(['entity_type', 'store_id', 'sequence_table', 'active_profile'])
245  )
246  ]
247  );
248  $metadata->setHasDataChanges(true);
249  try {
250  $this->resourceMetadata->save($metadata);
251  $connection = $this->appResource->getConnection('sales');
252  if (!$connection->isTableExists($this->data['sequence_table'])) {
253  $connection->query(
254  $this->ddlSequence->getCreateSequenceDdl(
255  $this->data['sequence_table'],
256  $this->data['start_value']
257  )
258  );
259  }
260  } catch (Exception $e) {
261  $this->resourceMetadata->delete($metadata);
262  $this->logger->critical($e);
263  throw $e;
264  }
265  $this->data = array_flip($this->pattern);
266  }
$connection
Definition: bulk.php:13

◆ getSequenceName()

getSequenceName ( )
protected

Returns sequence table name

Returns
string

Definition at line 196 of file Builder.php.

197  {
198  return $this->appResource->getTableName(
199  sprintf(
200  'sequence_%s_%s',
201  $this->data['entity_type'],
202  $this->data['store_id']
203  )
204  );
205  }

◆ setEntityType()

setEntityType (   $entityType)
Parameters
string$entityType
Returns
$this

Definition at line 115 of file Builder.php.

116  {
117  $this->data['entity_type'] = $entityType;
118  return $this;
119  }

◆ setMaxValue()

setMaxValue (   $maxValue)
Parameters
int$maxValue
Returns
$this

Definition at line 175 of file Builder.php.

176  {
177  $this->data['max_value'] = $maxValue;
178  return $this;
179  }

◆ setPrefix()

setPrefix (   $prefix)
Parameters
string$prefix
Returns
$this

Definition at line 135 of file Builder.php.

136  {
137  $this->data['prefix'] = $prefix;
138  return $this;
139  }
$prefix
Definition: name.phtml:25

◆ setStartValue()

setStartValue (   $startValue)
Parameters
int$startValue
Returns
$this

Definition at line 155 of file Builder.php.

156  {
157  $this->data['start_value'] = $startValue;
158  return $this;
159  }

◆ setStep()

setStep (   $step)
Parameters
int$step
Returns
$this

Definition at line 165 of file Builder.php.

166  {
167  $this->data['step'] = $step;
168  return $this;
169  }

◆ setStoreId()

setStoreId (   $storeId)
Parameters
int$storeId
Returns
$this

Definition at line 125 of file Builder.php.

126  {
127  $this->data['store_id'] = $storeId;
128  return $this;
129  }

◆ setSuffix()

setSuffix (   $suffix)
Parameters
string$suffix
Returns
$this

Definition at line 145 of file Builder.php.

146  {
147  $this->data['suffix'] = $suffix;
148  return $this;
149  }
$suffix
Definition: name.phtml:27

◆ setWarningValue()

setWarningValue (   $warningValue)
Parameters
int$warningValue
Returns
$this

Definition at line 185 of file Builder.php.

186  {
187  $this->data['warning_value'] = $warningValue;
188  return $this;
189  }

Field Documentation

◆ $appResource

$appResource
protected

Definition at line 41 of file Builder.php.

◆ $data

$data = []
protected

Definition at line 79 of file Builder.php.

◆ $ddlSequence

$ddlSequence
protected

Definition at line 46 of file Builder.php.

◆ $logger

$logger
protected

Definition at line 84 of file Builder.php.

◆ $metaFactory

$metaFactory
protected

Definition at line 36 of file Builder.php.

◆ $pattern

$pattern
protected
Initial value:
= [
'entity_type',
'store_id',
'prefix',
'suffix',
'start_value',
'step',
'max_value',
'warning_value',
]

Definition at line 63 of file Builder.php.

◆ $profileFactory

$profileFactory
protected

Definition at line 31 of file Builder.php.

◆ $required

$required
protected
Initial value:
= [
'entityType',
'storeId'
]

Definition at line 53 of file Builder.php.

◆ $resourceMetadata

$resourceMetadata
protected

Definition at line 26 of file Builder.php.


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