PHP Class VersionPress\Storages\Storage

显示文件 Open project: versionpress/versionpress Class Usage Examples

Public Properties

Property Type Description
$ignoreFrequentlyWrittenEntities boolean

Protected Properties

Property Type Description
$entityInfo VersionPress\Database\EntityInfo
$isTransaction boolean

Public Methods

Method Description
__construct ( EntityInfo $entityInfo, $dbPrefix )
commit ( ) Transfers data from memory (saved by Storage::saveLater()) to the files.
delete ( array $restriction ) : VersionPress\ChangeInfos\ChangeInfo | null Deletes entity from a storage
exists ( string $id, string | null $parentId ) : boolean Returns true if the entity exists.
getEntityFilename ( string $id, string | null $parentId ) : string Returns a physical path to an INI file where the entity is stored
getPathCommonToAllEntities ( )
loadAll ( ) : array[] Loads all entities managed by this storage
loadEntity ( string $id, string $parentId ) : array Load an entity by given VPID
prepareStorage ( ) Called from {@link VersionPress\Initialization\Initializer} to give storage a chance to prepare itself.
save ( array $data ) : VersionPress\ChangeInfos\ChangeInfo | null Saves data to a storage
saveLater ( array $data ) Saves data only in memory (used during initialization).
shouldBeSaved ( array $data ) : boolean True / false if the entity should be saved / ignored. Works as a filtering method.

Protected Methods

Method Description
deserializeEntity ( $serializedEntity )
maybeReplacePlaceholderWithPrefix ( $key )
maybeReplacePrefixWithPlaceholder ( $key )
serializeEntity ( $vpid, $entity )

Private Methods

Method Description
flattenEntity ( $entity )

Method Details

__construct() public method

public __construct ( EntityInfo $entityInfo, $dbPrefix )
$entityInfo VersionPress\Database\EntityInfo

commit() abstract public method

Transfers data from memory (saved by Storage::saveLater()) to the files.
abstract public commit ( )

delete() abstract public method

Deletes entity from a storage
abstract public delete ( array $restriction ) : VersionPress\ChangeInfos\ChangeInfo | null
$restriction array An array that typically contains a 'vp_id' key that specifies which entity to delete
return VersionPress\ChangeInfos\ChangeInfo | null Null indicates that no actual delete happened (for example, the INI file for a given VPID didn't exist). Otherwise, the ChangeInfo object is returned (its action is usually 'delete').

deserializeEntity() protected method

protected deserializeEntity ( $serializedEntity )

exists() abstract public method

Returns true if the entity exists.
abstract public exists ( string $id, string | null $parentId ) : boolean
$id string VPID
$parentId string | null VPID of parent entity (for example post for postmeta)
return boolean

getEntityFilename() abstract public method

Returns a physical path to an INI file where the entity is stored
abstract public getEntityFilename ( string $id, string | null $parentId ) : string
$id string VPID
$parentId string | null VPID of parent entity (for example post for postmeta)
return string

getPathCommonToAllEntities() abstract public method

abstract public getPathCommonToAllEntities ( )

loadAll() abstract public method

Loads all entities managed by this storage
abstract public loadAll ( ) : array[]
return array[] Array of arrays where keys are VPIDs and values are arrays with entity data

loadEntity() abstract public method

Load an entity by given VPID
abstract public loadEntity ( string $id, string $parentId ) : array
$id string VPID
$parentId string VPID of parent entity (for example post for postmeta)
return array Array representing an entity

maybeReplacePlaceholderWithPrefix() protected method

maybeReplacePrefixWithPlaceholder() protected method

prepareStorage() abstract public method

For example, directory storage uses this to create its folder. Note: consider if this method needs to be here
abstract public prepareStorage ( )

save() abstract public method

Saves data to a storage
abstract public save ( array $data ) : VersionPress\ChangeInfos\ChangeInfo | null
$data array Associative array with values to save. On `insert`, the $data will contain full entity data plus things like VPID. On further updates, the data will typically contain just the updated values and a VPID (assigned in {@link VersionPress\Database\WpdbMirrorBridge} so that the appropriate file could be located).
return VersionPress\ChangeInfos\ChangeInfo | null Null indicates that the save operation didn't really change anything (may happen). Otherwise, the ChangeInfo object is returned.

saveLater() abstract public method

Saves data only in memory (used during initialization).
abstract public saveLater ( array $data )
$data array {@see \Storage::save()}

serializeEntity() protected method

protected serializeEntity ( $vpid, $entity )

shouldBeSaved() public method

True / false if the entity should be saved / ignored. Works as a filtering method.
public shouldBeSaved ( array $data ) : boolean
$data array
return boolean

Property Details

$entityInfo protected_oe property

protected EntityInfo,VersionPress\Database $entityInfo
return VersionPress\Database\EntityInfo

$ignoreFrequentlyWrittenEntities public_oe property

public bool $ignoreFrequentlyWrittenEntities
return boolean

$isTransaction protected_oe property

protected bool $isTransaction
return boolean