CRUDlex\AbstractData

class AbstractData

The abstract class for reading and writing data.

constant DELETION_SUCCESS

Return value on successful deletion.

constant DELETION_FAILED_STILL_REFERENCED

Return value on failed deletion due to existing references.

constant DELETION_FAILED_EVENT

Return value on failed deletion due to a failed before delete event.

property definition

protected EntityDefinition

Holds the entity definition.

property filesystem

protected FilesystemInterface

Holds the filesystem.

property events

protected EntityEvents

Holds the events.

doDelete(Entity $entity, $deleteCascade)

Performs the actual deletion.

Parameters:
  • $entity (Entity) – the id of the entry to delete
  • $deleteCascade (boolean) – whether to delete children and subchildren
Returns:

integer true on successful deletion

hydrate($row)

Creates an Entity from the raw data array with the field name as keys and field values as values.

Parameters:
  • $row (array) – the array with the raw data
Returns:

Entity the entity containing the array data then

enrichEntityWithMetaData($id, Entity $entity)

Enriches an entity with metadata: id, version, created_at, updated_at

Parameters:
  • $id (mixed) – the id of the entity to enrich
  • $entity (Entity) – the entity to enrich
getManyFields()

Gets the many-to-many fields.

Returns:array|string[] the many-to-many fields
getFormFields()

Gets all form fields including the many-to-many-ones.

Returns:array all form fields
deleteChildren($id, $deleteCascade)

Performs the cascading children deletion.

Parameters:
  • $id (integer) – the current entities id
  • $deleteCascade (boolean) – whether to delete children and sub children
Returns:

integer returns one of: - AbstractData::DELETION_SUCCESS -> successful deletion - AbstractData::DELETION_FAILED_STILL_REFERENCED -> failed deletion due to existing references - AbstractData::DELETION_FAILED_EVENT -> failed deletion due to a failed before delete event

getReferenceIds($entities, $field)

Gets an array of reference ids for the given entities.

Parameters:
  • $entities (array) – the entities to extract the ids
  • $field (string) – the reference field
Returns:

array the extracted ids

doCreate(Entity $entity)

Performs the persistence of the given entity as new entry in the datasource.

Parameters:
  • $entity (Entity) – the entity to persist
Returns:

boolean true on successful creation

doUpdate(Entity $entity)

Performs the updates of an existing entry in the datasource having the same id.

Parameters:
  • $entity (Entity) – the entity with the new data
Returns:

boolean true on successful update

getEvents()

Gets the events instance.

Returns:EntityEvents the events instance
get($id)

Gets the entity with the given id.

Parameters:
  • $id (string) – the id
Returns:

Entity the entity belonging to the id or null if not existant

listEntries($filter = [], $filterOperators = [], $skip = null, $amount = null, $sortField = null, $sortAscending = null)

Gets a list of entities fullfilling the given filter or all if no selection was given.

Parameters:
  • $filter (array) – the filter all resulting entities must fulfill, the keys as field names
  • $filterOperators (array) – the operators of the filter like “=” defining the full condition of the field
  • $skip (integer|null) – if given and not null, it specifies the amount of rows to skip
  • $amount (integer|null) – if given and not null, it specifies the maximum amount of rows to retrieve
  • $sortField (string|null) – if given and not null, it specifies the field to sort the entries
  • $sortAscending (boolean|null) – if given and not null, it specifies that the sort order is ascending, descending else
Returns:

Entity[] the entities fulfilling the filter or all if no filter was given

create(Entity $entity)

Persists the given entity as new entry in the datasource.

Parameters:
  • $entity (Entity) – the entity to persist
Returns:

boolean true on successful creation

update(Entity $entity)

Updates an existing entry in the datasource having the same id.

Parameters:
  • $entity (Entity) – the entity with the new data
Returns:

boolean true on successful update

delete($entity)

Deletes an entry from the datasource.

Parameters:
  • $entity (Entity) – the entity to delete
Returns:

integer returns one of: - AbstractData::DELETION_SUCCESS -> successful deletion - AbstractData::DELETION_FAILED_STILL_REFERENCED -> failed deletion due to existing references - AbstractData::DELETION_FAILED_EVENT -> failed deletion due to a failed before delete event

getIdToNameMap($entity, $nameField)

Gets ids and names of a table. Used for building up the dropdown box of reference type fields for example.

Parameters:
  • $entity (string) – the entity
  • $nameField (string) – the field defining the name of the rows
Returns:

array an array with the ids as key and the names as values

countBy($table, $params, $paramsOperators, $excludeDeleted)

Retrieves the amount of entities in the datasource fulfilling the given parameters.

Parameters:
  • $table (string) – the table to count in
  • $params (array) – an array with the field names as keys and field values as values
  • $paramsOperators (array) – the operators of the parameters like “=” defining the full condition of the field
  • $excludeDeleted (boolean) – false, if soft deleted entries in the datasource should be counted, too
Returns:

integer the count fulfilling the given parameters

hasManySet($field, $thatIds, $excludeId = null)

Checks whether a given set of ids is assigned to any entity exactly like it is given (no subset, no superset).

Parameters:
  • $field (string) – the many field
  • $thatIds (array) – the id set to check
  • $excludeId (string|null) – one optional own id to exclude from the check
Returns:

boolean true if the set of ids exists for an entity

getDefinition()

Gets the EntityDefinition instance.

Returns:EntityDefinition the definition instance
createEmpty()

Creates a new, empty entity instance having all fields prefilled with null or the defined value in case of fixed fields.

Returns:Entity the newly created entity