From c35349f90d14a3bedf3de24952e5173cb136d21d Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Mon, 18 Oct 2010 22:39:19 +0000 Subject: [PATCH] ENHANCEMENT: added getter to get array back out of an ArrayData instance. MINOR: updated docblocks in ArrayData (from r108012) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112705 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/ArrayData.php | 34 ++++++++++++++++++++++++++++------ tests/ArrayDataTest.php | 12 ++++++++++++ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/core/ArrayData.php b/core/ArrayData.php index 7de4a0fca..484c15b56 100755 --- a/core/ArrayData.php +++ b/core/ArrayData.php @@ -14,6 +14,10 @@ */ class ArrayData extends ViewableData { + /** + * @var array + * @see ArrayData::_construct() + */ protected $array; /** @@ -35,12 +39,27 @@ class ArrayData extends ViewableData { parent::__construct(); } + /** + * Get the source array + * + * @return array + */ + public function getArray() { + return $this->array; + } + + /** + * Get a value from a given field + * + * @param string $f field key + * @return mixed + */ public function getField($f) { if((is_object($this->array[$f]) && !$this->array[$f] instanceof ViewableData) || (is_array($this->array[$f]) && ArrayLib::is_associative($this->array[$f]))) { return new ArrayData($this->array[$f]); - } else { - return $this->array[$f]; } + + return $this->array[$f]; } /** @@ -53,6 +72,12 @@ class ArrayData extends ViewableData { $this->array[$field] = $value; } + /** + * Check array to see if field isset + * + * @param string Field Key + * @return bool + */ public function hasField($f) { return isset($this->array[$f]); } @@ -79,7 +104,4 @@ class ArrayData extends ViewableData { function forTemplate() { return var_export($this->array, true); } - -} - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/ArrayDataTest.php b/tests/ArrayDataTest.php index 2bfd0b097..373465190 100644 --- a/tests/ArrayDataTest.php +++ b/tests/ArrayDataTest.php @@ -84,6 +84,18 @@ class ArrayDataTest extends SapphireTest { $this->assertTrue($arrayData->hasField('d')); $this->assertEquals('Delta', $arrayData->getField('d')); } + + function testGetArray() { + $array = array( + 'Foo' => 'Foo', + 'Bar' => 'Bar', + 'Baz' => 'Baz' + ); + + $arrayData = new ArrayData($array); + + $this->assertEquals($arrayData->getArray(), $array); + } }