Omeka_Record_AbstractRecord
Package: Record
- class Omeka_Record_AbstractRecord
implements ArrayAccess
A base class for domain objects, inspired by, though not strictly adherent to, the ActiveRecord pattern.
- property Omeka_Record_AbstractRecord::$id
int
Unique ID for the record.
All implementations of Omeka_Record_AbstractRecord must have a table containing an ‘id’ column, preferably as the primary key.
- property Omeka_Record_AbstractRecord::$_cache
protected array
An in-memory cache for related objects that have been retrieved via the magic __get() syntax.
- property Omeka_Record_AbstractRecord::$_mixins
protected array
Set of Omeka_Record_Mixin_AbstractMixin objects that are designed to extend the behavior of Omeka_Record_AbstractRecord implementations.
Examples include {@link Taggable}, {@link Relatable}, {@link ActsAsElementText}, etc.
- property Omeka_Record_AbstractRecord::$_db
protected Omeka_Db
protected array
Key/value pairs indicating aliases for methods that retrieve related data objects. For example, a subclass might define the following: <code> protected $_related = array(‘Sections’=>’loadSections’); </code> This would allow the client to write code like: <code> $sections = $subclassInstance->Sections; </code> Which would be equivalent to: <code> $sections = $subclassInstance->loadSections(); </code> The difference being, the former is cached so as to avoid multiple trips to the database.
- property Omeka_Record_AbstractRecord::$_postData
protected ArrayObject
Storage for the POST data when handling a form.
- Omeka_Record_AbstractRecord::__construct($db = null)
- Parameters:
$db (
Omeka_Db|null
) – (optional) Defaults to the Omeka_Db instance from the bootstrap.
- Omeka_Record_AbstractRecord::construct()
Subclass constructor behavior.
Subclasses of Omeka_Record_AbstractRecord can override this function to add behavior to the constructor without overriding __construct.
- Omeka_Record_AbstractRecord::__destruct()
Unsets mixins, which contain circular references, upon record destruction
IMPORTANT: Solves a memory leak when retrieving/saving records.
Required because PHP 5.2 does not do garbage collection on circular references.
- Omeka_Record_AbstractRecord::__get($prop)
Retrieve database records that are associated with the current one.
- Parameters:
$prop (
string
) – Related data to retrieve.- Returns:
mixed
- Omeka_Record_AbstractRecord::__call($m, $a)
Delegate unknown method calls to Omeka_Record_Mixin_AbstractMixin instances.
- Parameters:
$m (
string
) – Method name.$a (
array
) – Method arguments.- Returns:
mixed
- Omeka_Record_AbstractRecord::_initializeMixins()
Initialize the mixins for a record.
Any Omeka_Record_AbstractRecord subclass that uses mixins should initialize them here, since this is called on construction and when mixins need to be reinitialized.
- Omeka_Record_AbstractRecord::delegateToMixins($method, $args = array(), $all = false)
Delegate to the given method in one or more mixin instances.
- Parameters:
$method (
string
)$args (
array
)$all (
bool
) – (optional) Whether or not to call the same method on every mixin instance that has that method. Defaults to false.- Returns:
mixed If $all is false, the return value from the invoked method. Otherwise there is no return value.
- Omeka_Record_AbstractRecord::runCallbacks($event, $args = array())
Invoke all callbacks associated with a specific record event.
Callbacks execute in the following order: - Omeka_Record_AbstractRecord hooks like Omeka_Record_AbstractRecord::afterDelete() - Record mixin hooks like Taggable::afterSave() - Generic record plugin hooks like ‘before_delete_record’ - Specific record plugin hooks like ‘before_delete_item’
- Parameters:
$event
$args
- Omeka_Record_AbstractRecord::_addToCache($value, $key)
Add a value to the record-specific cache.
- Parameters:
$value (
mixed
)$key (
string
)
- Omeka_Record_AbstractRecord::_getCached($name)
Get a value from the record-specific cache.
- Parameters:
$name (
string
)- Returns:
mixed
- Omeka_Record_AbstractRecord::getProperty($property)
Get a property about the record for display purposes.
- Parameters:
$property (
string
) – Property to get. Always lowercase.- Returns:
mixed
- Omeka_Record_AbstractRecord::exists()
Determine whether or not this record is persistent in the database.
For simplicity, non-persistent records are indicated by the lack of a value for the ‘id’ column.
- Returns:
bool
- Omeka_Record_AbstractRecord::_validate()
Template method for defining record validation rules.
Should be overridden by subclasses.
- Omeka_Record_AbstractRecord::isValid()
Determine whether or not the record is valid.
- Returns:
bool
- Omeka_Record_AbstractRecord::getErrors()
Retrieve validation errors associated with this record.
- Returns:
Omeka_Validate_Errors
- Omeka_Record_AbstractRecord::hasErrors()
Determine whether or not this record has any validation errors.
- Returns:
bool
- Omeka_Record_AbstractRecord::addError($field, $msg)
Add a validation error for a specific field.
Currently limited to a single error per field, so multiple error messages must be concatenated together.
- Parameters:
$field (
string|null
) – Name of the field. This can be null to indicate a general error not associated with a specific field.$msg (
string
) – The error message.
- Omeka_Record_AbstractRecord::addErrorsFrom(Omeka_Record_AbstractRecord $record)
Combine errors from a different Omeka_Record_AbstractRecord instance with the errors already on this record.
- Parameters:
$record (
Omeka_Record_AbstractRecord
)
- Omeka_Record_AbstractRecord::lock()
Prevent a record from being modified.
Can be used to prevent accidentally saving/deleting a record if its state may change but saving would be undesirable, such as modifying a record for display purposes.
- Omeka_Record_AbstractRecord::getTable($class = null)
Retrieve the Omeka_Db_Table instance associated with this record, or with that of any given record class.
- Parameters:
$class
- Returns:
Omeka_Db_Table
- Omeka_Record_AbstractRecord::getDb()
Retrieve the Omeka_Db instance associated with this record.
- Returns:
Omeka_Db
- Omeka_Record_AbstractRecord::toArray()
Retrieve an associative array of all the record’s columns and their values.
- Returns:
array
- Omeka_Record_AbstractRecord::save($throwIfInvalid = true)
Save the record.
- Parameters:
$throwIfInvalid (
bool
)- Returns:
bool Whether the save was successful.
- Omeka_Record_AbstractRecord::__clone()
Clone the record.
Unsets the ID so the cloned record can be saved on its own.
- Omeka_Record_AbstractRecord::delete()
Delete the record.
- Omeka_Record_AbstractRecord::_delete()
Template method for defining record deletion logic.
Subclasses can override this method to define additional logic for deleting records. Note that this is different from both the beforeDelete() and afterDelete() hooks in that it executes after beforeDelete(), but before the record is actually deleted.
Common use cases include emulating cascading deletes with other database rows.
- Omeka_Record_AbstractRecord::beforeSave($args)
Executes before the record is saved.
- Parameters:
$args
- Omeka_Record_AbstractRecord::afterSave($args)
Executes after the record is inserted.
- Parameters:
$args
- Omeka_Record_AbstractRecord::beforeDelete()
Executes before the record is deleted.
- Omeka_Record_AbstractRecord::afterDelete()
Executes after the record is deleted.
- Omeka_Record_AbstractRecord::setArray($data)
Set values for the record using an associative array or iterator.
- Parameters:
$data (
array|Traversable
)
- Omeka_Record_AbstractRecord::getPluginBroker()
- Omeka_Record_AbstractRecord::setPluginBroker($broker = null)
- Parameters:
$broker
- Omeka_Record_AbstractRecord::offsetExists($name)
Determine whether or not the given field has a value associated with it.
Required by ArrayAccess.
- Parameters:
$name (
string
)- Returns:
bool
- Omeka_Record_AbstractRecord::offsetUnset($name)
Unset the given field.
Required by ArrayAccess.
- Parameters:
$name (
string
)
- Omeka_Record_AbstractRecord::offsetGet($name)
Retrieve the value of a given field.
Required by ArrayAccess.
- Parameters:
$name (
string
)- Returns:
mixed
- Omeka_Record_AbstractRecord::offsetSet($name, $value)
Set the value of a given field.
Required by ArrayAccess.
- Parameters:
$name (
string
)$value (
mixed
)
- Omeka_Record_AbstractRecord::filterPostData($post)
Filter the form input according to some criteria.
Template method should be overridden by subclasses that wish to implement some sort of filtering criteria.
- Parameters:
$post (
array
)- Returns:
array Filtered post data.
- Omeka_Record_AbstractRecord::setPostData($post)
Set the POST data to the record.
- Parameters:
$post (
array
)
- Omeka_Record_AbstractRecord::fieldIsUnique($field, $value = null)
Check uniqueness of one of the record’s fields.
- Parameters:
$field (
string
)$value (
mixed
) – Optional If null, this will check the value of the record’s $field. Otherwise check the uniqueness of this value for the given field.- Returns:
bool
- Omeka_Record_AbstractRecord::getRecordUrl($action = 'show')
Get the routing parameters or the URL string to this record.
The record_url() global uses this method to get routing parameters for non-standard records, e.g. records defined by plugins. Subclasses should override this method if the default route (as defined below) is incorrect.
- Parameters:
$action (
string
)- Returns:
string|array A URL string or a routing array.
- Omeka_Record_AbstractRecord::getFile()
Get a representative file for this record.
- Returns:
File|null