diff options
Diffstat (limited to 'engine/classes/ElggData.php')
| -rw-r--r-- | engine/classes/ElggData.php | 85 |
1 files changed, 66 insertions, 19 deletions
diff --git a/engine/classes/ElggData.php b/engine/classes/ElggData.php index 4591c499d..4f843cde4 100644 --- a/engine/classes/ElggData.php +++ b/engine/classes/ElggData.php @@ -1,11 +1,21 @@ <?php +/** + * A generic class that contains shared code b/w + * ElggExtender, ElggEntity, and ElggRelationship + * + * @package Elgg.Core + * @subpackage DataModel + * + * @property int $owner_guid + * @property int $time_created + */ abstract class ElggData implements Loggable, // Can events related to this object class be logged Iterator, // Override foreach behaviour ArrayAccess, // Override for array access Exportable { - + /** * The main attributes of an entity. * Holds attributes to save to database @@ -15,7 +25,28 @@ abstract class ElggData implements * Any field not appearing in this will be viewed as a */ protected $attributes = array(); - + + // @codingStandardsIgnoreStart + /** + * Initialise the attributes array. + * + * This is vital to distinguish between metadata and base parameters. + * + * @param bool $pre18_api Compatibility for subclassing in 1.7 -> 1.8 change. + * Passing true (default) emits a deprecation notice. + * Passing false returns false. Core constructors always pass false. + * Does nothing either way since attributes are initialized by the time + * this is called. + * @return void + * @deprecated 1.8 Use initializeAttributes() + */ + protected function initialise_attributes($pre18_api = true) { + if ($pre18_api) { + elgg_deprecated_notice('initialise_attributes() is deprecated by initializeAttributes()', 1.8); + } + } + // @codingStandardsIgnoreEnd + /** * Initialize the attributes array. * @@ -28,8 +59,8 @@ abstract class ElggData implements if (!is_array($this->attributes)) { $this->attributes = array(); } - - $this->attributes['time_created'] = ''; + + $this->attributes['time_created'] = NULL; } /** @@ -54,7 +85,7 @@ abstract class ElggData implements public function __set($name, $value) { return $this->set($name, $value); } - + /** * Test if property is set either as an attribute or metadata. * @@ -67,18 +98,33 @@ abstract class ElggData implements function __isset($name) { return $this->$name !== NULL; } - + + /** + * Fetch the specified attribute + * + * @param string $name The attribute to fetch + * + * @return mixed The attribute, if it exists. Otherwise, null. + */ abstract protected function get($name); - + + /** + * Set the specified attribute + * + * @param string $name The attribute to set + * @param mixed $value The value to set it to + * + * @return bool The success of your set function? + */ abstract protected function set($name, $value); - + /** * Get a URL for this object - * + * * @return string */ abstract public function getURL(); - + /** * Save this data to the appropriate database table. * @@ -92,7 +138,7 @@ abstract class ElggData implements * @return bool */ abstract public function delete(); - + /** * Returns the UNIX epoch time that this entity was created * @@ -101,7 +147,7 @@ abstract class ElggData implements public function getTimeCreated() { return $this->time_created; } - + /* * SYSTEM LOG INTERFACE */ @@ -119,10 +165,10 @@ abstract class ElggData implements * Return the GUID of the owner of this object. * * @return int - * @deprecated 1.8 Use getOwner() instead + * @deprecated 1.8 Use getOwnerGUID() instead */ public function getObjectOwnerGUID() { - elgg_deprecated_notice("The method getObjectOwnerGUID() was deprecated in Elgg 1.8. Use getOwner() instead.", 1.8); + elgg_deprecated_notice("getObjectOwnerGUID() was deprecated. Use getOwnerGUID().", 1.8); return $this->owner_guid; } @@ -152,7 +198,7 @@ abstract class ElggData implements * * @see Iterator::current() * - * @return void + * @return mixed */ public function current() { return current($this->attributes); @@ -163,7 +209,7 @@ abstract class ElggData implements * * @see Iterator::key() * - * @return void + * @return string */ public function key() { return key($this->attributes); @@ -185,7 +231,7 @@ abstract class ElggData implements * * @see Iterator::valid() * - * @return void + * @return bool */ public function valid() { return $this->valid; @@ -223,12 +269,13 @@ abstract class ElggData implements * * @param mixed $key Name * - * @return void + * @return mixed */ public function offsetGet($key) { if (array_key_exists($key, $this->attributes)) { return $this->attributes[$key]; } + return null; } /** @@ -259,4 +306,4 @@ abstract class ElggData implements public function offsetExists($offset) { return array_key_exists($offset, $this->attributes); } -}
\ No newline at end of file +} |
