powered by nequal
Home » Maple4_DocTest » Timeline » 197

Changeset 197 -- 2008-12-11 11:11:31

Author
ぼぶちん
Comment
・Utils_Array を ArrayObject に変更してみた ・setDefault()の廃止

Diffs

Maple4_DocTest/trunk/tests/Maple4/Utils/ArrayTest.php

@@ -76,6 +76,10 @@
$this->assertEquals(2, $instance->bar);
$this->assertEquals(null, $instance->baz);
+        $this->assertEquals(1, $instance['foo']);
+        $this->assertEquals(2, $instance['bar']);
+        $this->assertEquals(null, $instance['baz']);
+
$this->assertEquals(1, Maple4_Utils_Array::create($test)->foo);
$this->assertEquals(2, Maple4_Utils_Array::create($test)->bar);
$this->assertEquals(null, Maple4_Utils_Array::create($test)->baz);
@@ -94,11 +98,7 @@
$instance = new Maple4_Utils_Array($test);
$this->assertEquals(3, $instance->get('baz', 3));
-        $this->assertEquals(3, $instance->setDefault('baz', 3)->baz);
-        $this->assertEquals(3, Maple4_Utils_Array::create($test)->setDefault('baz', 3)->baz);
-
-        $this->assertEquals(3, Maple4_Utils_Array::create()->setDefault('baz', 3)->get('baz'));
-        $this->assertEquals(3, Maple4_Utils_Array::create()->setDefault('baz', 3)->baz);
+        $this->assertEquals(4, Maple4_Utils_Array::create($test)->get('baz', 4));
}
/**
@@ -125,5 +125,24 @@
$this->assertEquals(3, Maple4_Utils_Array::create()->set('bar', 3)->get('bar'));
$this->assertEquals(3, Maple4_Utils_Array::create()->set('bar', 3)->bar);
+
+        // 配列をセット
+        $add = array(
+            'foo' => 10,
+            'baz' => 20,
+            'nokey',
+        );
+        $instance = new Maple4_Utils_Array($test);
+        $this->assertEquals(1, $instance->get('foo'));
+        $this->assertEquals(2, $instance->get('bar'));
+        $this->assertEquals(null, $instance->get('baz'));
+        $this->assertEquals(null, $instance->get(0));
+
+        $instance->set($add);
+        $this->assertEquals(10, $instance->get('foo'));
+        $this->assertEquals(2, $instance->get('bar'));
+        $this->assertEquals(20, $instance->get('baz'));
+        $this->assertEquals('nokey', $instance->get(0));
}
+
}
\ No newline at end of file

Maple4_DocTest/trunk/src/Maple4/Utils/Array.php

@@ -52,26 +52,16 @@
* @version    Release: @package_version@
* @since      Class available since Release 0.2.0
*/
-class Maple4_Utils_Array
+class Maple4_Utils_Array extends ArrayObject
{
/**
-     * @var array 各要素のデフォルト値
-     */
-    private $defaults = array();
-
-    /**
-     * @var array 処理する配列
-     */
-    private $array = array();
-
-    /**
* コンストラクタ
*
* @params array $array 処理する配列
*/
public function __construct($array = array())
{
-        $this->array = $array;
+        parent::__construct($array, ArrayObject::ARRAY_AS_PROPS);
}
/**
@@ -96,13 +86,7 @@
*/
public function get($key, $default = null)
{
-        if (is_array($this->array) && isset($this->array[$key])) {
-            $result = $this->array[$key];
-        } else {
-            $result = $default;
-        }
-
-        return $result;
+        return isset($this[$key])? $this[$key]: $default;
}
/**
@@ -115,48 +99,14 @@
*/
public function set($key, $value = null)
{
-        $this->array[$key] = $value;
-        return $this;
-    }
-
-    /**
-     * 配列ということを隠蔽したアクセス
-     *
-     * @param mixed $key 配列要素
-     * @return mixed 要素に対する値
-     */
-    public function __get($key)
-    {
-        $default = null;
-        if (isset($this->default[$key])) {
-            $default = $this->default[$key];
+        if (is_array($key)) {
+            foreach ($key as $k => $v) {
+                $this->set($k, $v);
+            }
+        } else {
+            $this[$key] = $value;
}
-
-        return $this->get($key, $default);
-    }
-
-    /**
-     * 配列ということを隠蔽したアクセス
-     *
-     * @param mixed $key 配列要素
-     * @param mixed $value 要素に対する値
-     */
-    public function __set($key, $value)
-    {
-        $this->set($key, $value);
-    }
-
-    /**
-     * 要素に対してデフォルト値をセット
-     *
-     * @param mixed $key 配列要素
-     * @param mixed $default 要素に対するデフォルト値
-     * @return object このオブジェクト自身
-     */
-    public function setDefault($key, $default = null)
-    {
-        $this->array[$key] = $default;
-
return $this;
}
+
}