Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes
ModuleResource Class Reference
Inheritance diagram for ModuleResource:
AbstractDb ResourceInterface AbstractResource

Public Member Functions

 getDbVersion ($moduleName)
 
 setDbVersion ($moduleName, $version)
 
 getDataVersion ($moduleName)
 
 setDataVersion ($moduleName, $version)
 
- 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 ()
 

Static Public Member Functions

static flush ()
 

Protected Member Functions

 _construct ()
 
 _loadVersion ($needType)
 
- 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 ()
 

Static Protected Attributes

static $schemaVersions = null
 
static $dataVersions = null
 

Additional Inherited Members

- 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

Resource Model

Deprecated:
Declarative schema and data patches replace old functionality and setup_module table So all resources related to this table, will be deprecated since 2.3.0

Definition at line 17 of file ModuleResource.php.

Member Function Documentation

◆ _construct()

_construct ( )
protected

Define main table

Returns
void

Definition at line 38 of file ModuleResource.php.

39  {
40  $this->_init('setup_module', 'module');
41  }

◆ _loadVersion()

_loadVersion (   $needType)
protected

Fill static versions arrays. This routine fetches Db and Data versions of at once to optimize sql requests. However, when upgrading, it's possible that 'data' column will be created only after all Db installs are passed. So $neededType contains information on main purpose of calling this routine, and even when 'data' column is absent - it won't require reissuing new sql just to get 'db' version of module.

Parameters
string$needTypeCan be 'db' or 'data'
Returns
$this

Definition at line 53 of file ModuleResource.php.

54  {
55  if ($needType == 'db' && self::$schemaVersions === null ||
56  $needType == 'data' && self::$dataVersions === null
57  ) {
58  self::$schemaVersions = [];
59  // Db version column always exists
60  self::$dataVersions = null;
61  // Data version array will be filled only if Data column exist
62 
63  if ($this->getConnection()->isTableExists($this->getMainTable())) {
64  $select = $this->getConnection()->select()->from($this->getMainTable(), '*');
65  $rowset = $this->getConnection()->fetchAll($select);
66  foreach ($rowset as $row) {
67  self::$schemaVersions[$row['module']] = $row['schema_version'];
68  if (array_key_exists('data_version', $row)) {
69  if (self::$dataVersions === null) {
70  self::$dataVersions = [];
71  }
72  self::$dataVersions[$row['module']] = $row['data_version'];
73  }
74  }
75  }
76  }
77 
78  return $this;
79  }

◆ flush()

static flush ( )
static

Flush all class cache

Deprecated:
This method was added as temporary solution, to increase modularity: Because before new modules appears in resource only on next bootstrap
Returns
void

Definition at line 148 of file ModuleResource.php.

149  {
150  self::$dataVersions = null;
151  self::$schemaVersions = [];
152  }

◆ getDataVersion()

getDataVersion (   $moduleName)

{Get resource data version

Parameters
string$moduleName
Returns
string|false
}

Implements ResourceInterface.

Definition at line 116 of file ModuleResource.php.

117  {
118  if (!$this->getConnection()) {
119  return false;
120  }
121  $this->_loadVersion('data');
122  return self::$dataVersions[$moduleName] ?? false;
123  }

◆ getDbVersion()

getDbVersion (   $moduleName)

{Get Module version from DB

Parameters
string$moduleName
Returns
false|string
}

Implements ResourceInterface.

Definition at line 84 of file ModuleResource.php.

85  {
86  if (!$this->getConnection()) {
87  return false;
88  }
89  $this->_loadVersion('db');
90  return self::$schemaVersions[$moduleName] ?? false;
91  }

◆ setDataVersion()

setDataVersion (   $moduleName,
  $version 
)

{Set resource data version

Parameters
string$moduleName
string$version
Returns
void
}

Implements ResourceInterface.

Definition at line 128 of file ModuleResource.php.

129  {
130  $data = ['module' => $moduleName, 'data_version' => $version];
131 
132  if ($this->getDbVersion($moduleName) || $this->getDataVersion($moduleName)) {
133  self::$dataVersions[$moduleName] = $version;
134  $this->getConnection()->update($this->getMainTable(), $data, ['module = ?' => $moduleName]);
135  } else {
136  self::$dataVersions[$moduleName] = $version;
137  $this->getConnection()->insert($this->getMainTable(), $data);
138  }
139  }

◆ setDbVersion()

setDbVersion (   $moduleName,
  $version 
)

{Set Module version

Parameters
string$moduleName
string$version
Returns
int
}

Implements ResourceInterface.

Definition at line 96 of file ModuleResource.php.

97  {
98  $dbModuleInfo = ['module' => $moduleName, 'schema_version' => $version];
99 
100  if ($this->getDbVersion($moduleName)) {
101  self::$schemaVersions[$moduleName] = $version;
102  return $this->getConnection()->update(
103  $this->getMainTable(),
104  $dbModuleInfo,
105  ['module = ?' => $moduleName]
106  );
107  } else {
108  self::$schemaVersions[$moduleName] = $version;
109  return $this->getConnection()->insert($this->getMainTable(), $dbModuleInfo);
110  }
111  }

Field Documentation

◆ $dataVersions

$dataVersions = null
staticprotected

Definition at line 31 of file ModuleResource.php.

◆ $schemaVersions

$schemaVersions = null
staticprotected

Definition at line 24 of file ModuleResource.php.


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