Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
AbstractResource Class Reference
Inheritance diagram for AbstractResource:
AbstractDb AbstractResource Flat AbstractIndexer AbstractResourceStub AbstractEav DefaultPrice DefaultStock Decimal Source Stock Configurable Grouped

Public Member Functions

 __construct (\Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, $connectionName=null)
 
 reindexAll ()
 
 getIdxTable ($table=null)
 
 syncData ()
 
 insertFromTable ($sourceTable, $destTable, $readToIndex=true)
 
 insertFromSelect ($select, $destTable, array $columns, $readToIndex=true)
 
 clearTemporaryIndexTable ()
 
- Public Member Functions inherited from AbstractDb
 __construct (\Magento\Framework\Model\ResourceModel\Db\Context $context, $connectionName=null)
 
 __sleep ()
 
 __wakeup ()
 
 getIdFieldName ()
 
 getMainTable ()
 
 getTable ($tableName)
 
 getConnection ()
 
 load (\Magento\Framework\Model\AbstractModel $object, $value, $field=null)
 
 save (\Magento\Framework\Model\AbstractModel $object)
 
 delete (\Magento\Framework\Model\AbstractModel $object)
 
 addUniqueField ($field)
 
 resetUniqueField ()
 
 unserializeFields (\Magento\Framework\Model\AbstractModel $object)
 
 getUniqueFields ()
 
 hasDataChanged ($object)
 
 getChecksum ($table)
 
 afterLoad (\Magento\Framework\DataObject $object)
 
 beforeSave (\Magento\Framework\DataObject $object)
 
 afterSave (\Magento\Framework\DataObject $object)
 
 beforeDelete (\Magento\Framework\DataObject $object)
 
 afterDelete (\Magento\Framework\DataObject $object)
 
 serializeFields (\Magento\Framework\Model\AbstractModel $object)
 
- Public Member Functions inherited from AbstractResource
 __construct ()
 
 getConnection ()
 
 beginTransaction ()
 
 addCommitCallback ($callback)
 
 commit ()
 
 rollBack ()
 
 getValidationRulesBeforeSave ()
 

Protected Member Functions

 _getIndexAdapter ()
 
- Protected Member Functions inherited from AbstractDb
 _init ($mainTable, $idFieldName)
 
 _setResource ($connections, $tables=null)
 
 _setMainTable ($mainTable, $idFieldName=null)
 
 _getConnection ($resourceName)
 
 _getLoadSelect ($field, $value, $object)
 
 _initUniqueFields ()
 
 _prepareDataForSave (\Magento\Framework\Model\AbstractModel $object)
 
 _prepareValueForSave ($value, $type)
 
 _checkUnique (\Magento\Framework\Model\AbstractModel $object)
 
 _afterLoad (\Magento\Framework\Model\AbstractModel $object)
 
 _beforeSave (\Magento\Framework\Model\AbstractModel $object)
 
 _afterSave (\Magento\Framework\Model\AbstractModel $object)
 
 _beforeDelete (\Magento\Framework\Model\AbstractModel $object)
 
 _afterDelete (\Magento\Framework\Model\AbstractModel $object)
 
 _serializeFields (\Magento\Framework\Model\AbstractModel $object)
 
 prepareDataForUpdate ($object)
 
 isObjectNotNew (\Magento\Framework\Model\AbstractModel $object)
 
 saveNewObject (\Magento\Framework\Model\AbstractModel $object)
 
 updateObject (\Magento\Framework\Model\AbstractModel $object)
 
 processAfterSaves (\Magento\Framework\Model\AbstractModel $object)
 
 isModified (\Magento\Framework\Model\AbstractModel $object)
 
 processNotModifiedSave (\Magento\Framework\Model\AbstractModel $object)
 
- Protected Member Functions inherited from AbstractResource
 _construct ()
 
 _serializeField (DataObject $object, $field, $defaultValue=null, $unsetEmpty=false)
 
 _unserializeField (DataObject $object, $field, $defaultValue=null)
 
 _prepareDataForTable (DataObject $object, $table)
 
 _prepareTableValueForSave ($value, $type)
 
 _getColumnsForEntityLoad (\Magento\Framework\Model\AbstractModel $object, $tableName)
 
 getSerializer ()
 

Protected Attributes

 $tableStrategy
 
- Protected Attributes inherited from AbstractDb
 $_resources
 
 $connectionName = \Magento\Framework\App\ResourceConnection::DEFAULT_CONNECTION
 
 $_connections = []
 
 $_resourceModel
 
 $_tables = []
 
 $_mainTable
 
 $_idFieldName
 
 $_isPkAutoIncrement = true
 
 $_useIsObjectNew = false
 
 $_mainTableFields
 
 $_uniqueFields = null
 
 $_serializableFields = []
 
 $transactionManager
 
 $objectRelationProcessor
 
- Protected Attributes inherited from AbstractResource
 $serializer
 
 $_logger
 

Detailed Description

Abstract resource model. Can be used as base for indexer resources

@api

Since
100.0.2

Definition at line 17 of file AbstractResource.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Model\ResourceModel\Db\Context  $context,
\Magento\Framework\Indexer\Table\StrategyInterface  $tableStrategy,
  $connectionName = null 
)

Class constructor

Parameters
\Magento\Framework\Model\ResourceModel\Db\Context$context
\Magento\Framework\Indexer\Table\StrategyInterface$tableStrategy
string$connectionName

Definition at line 33 of file AbstractResource.php.

37  {
38  $this->tableStrategy = $tableStrategy;
39  parent::__construct($context, $connectionName);
40  }

Member Function Documentation

◆ _getIndexAdapter()

_getIndexAdapter ( )
protected

Get DB adapter for index data processing

Returns
AdapterInterface

Definition at line 58 of file AbstractResource.php.

59  {
60  return $this->getConnection();
61  }

◆ clearTemporaryIndexTable()

clearTemporaryIndexTable ( )

Clean up temporary index table

Returns
void

Definition at line 171 of file AbstractResource.php.

◆ getIdxTable()

getIdxTable (   $table = null)

Get index table name with additional suffix

Parameters
string$table
Returns
string

Definition at line 69 of file AbstractResource.php.

70  {
71  if ($table) {
72  return $this->tableStrategy->prepareTableName($table);
73  }
74  return $this->tableStrategy->prepareTableName($this->getMainTable());
75  }
$table
Definition: trigger.php:14

◆ insertFromSelect()

insertFromSelect (   $select,
  $destTable,
array  $columns,
  $readToIndex = true 
)

Insert data from select statement of read adapter to destination table related with index adapter

Parameters
Select$select
string$destTable
array$columns
bool$readToIndexdata migration direction (true - read=>index, false - index=>read)
Returns
$this

Definition at line 132 of file AbstractResource.php.

133  {
134  if ($readToIndex) {
135  $from = $this->getConnection();
136  $to = $this->_getIndexAdapter();
137  } else {
138  $from = $this->_getIndexAdapter();
139  $to = $this->getConnection();
140  }
141 
142  if ($from === $to) {
143  $query = $select->insertFromSelect($destTable, $columns);
144  $to->query($query);
145  } else {
146  $stmt = $from->query($select);
147  $data = [];
148  $counter = 0;
149  while ($row = $stmt->fetch(\PDO::FETCH_NUM)) {
150  $data[] = $row;
151  $counter++;
152  if ($counter > 2000) {
153  $to->insertArray($destTable, $columns, $data);
154  $data = [];
155  $counter = 0;
156  }
157  }
158  if (!empty($data)) {
159  $to->insertArray($destTable, $columns, $data);
160  }
161  }
162 
163  return $this;
164  }
$columns
Definition: default.phtml:15

◆ insertFromTable()

insertFromTable (   $sourceTable,
  $destTable,
  $readToIndex = true 
)

Copy data from source table of read adapter to destination table of index adapter

Parameters
string$sourceTable
string$destTable
bool$readToIndexdata migration direction (true - read=>index, false - index=>read)
Returns
$this

Definition at line 107 of file AbstractResource.php.

108  {
109  if ($readToIndex) {
110  $sourceColumns = array_keys($this->getConnection()->describeTable($sourceTable));
111  $targetColumns = array_keys($this->getConnection()->describeTable($destTable));
112  } else {
113  $sourceColumns = array_keys($this->_getIndexAdapter()->describeTable($sourceTable));
114  $targetColumns = array_keys($this->getConnection()->describeTable($destTable));
115  }
116  $select = $this->_getIndexAdapter()->select()->from($sourceTable, $sourceColumns);
117 
118  $this->insertFromSelect($select, $destTable, $targetColumns, $readToIndex);
119  return $this;
120  }
insertFromSelect($select, $destTable, array $columns, $readToIndex=true)

◆ reindexAll()

reindexAll ( )

Reindex all

Returns
$this

Definition at line 47 of file AbstractResource.php.

48  {
49  $this->tableStrategy->setUseIdxTable(true);
50  return $this;
51  }

◆ syncData()

syncData ( )

Synchronize data between index storage and original storage

Returns
$this

Can't use truncate because of transaction

Definition at line 82 of file AbstractResource.php.

Field Documentation

◆ $tableStrategy

$tableStrategy
protected

Definition at line 24 of file AbstractResource.php.


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