0

假设我有一个 Config 类型的对象,它或多或少地存储了一堆键/值对。如果值是一个数组,它将数组转换为一个新的 Config 实例,将数组的值存储在其中。当然,这可以在多个级别上无限期地进行。

模拟这种类型的对象的最佳方法是什么?我对 PHPUnit 相当陌生,所以很可能存在一个非常简单的解决方案,但目前我不确定如何继续。

根据我目前的经验,创建 Config 的模拟也不会传播到包含的 Config 对象(在我的 __set() 魔术方法中,它基本上是new self($array)在到达$data.

这是对象应如何表现的示例:

$data = array(
    'one' => 'unus',
    'two' => 'duo',
    'three' => array(
        'a' => 'alpha',
        'b' => 'beta'
    )
);

$config = new Config($data);

// I should be able to do this:
echo $config->three->a;          // Outputs "alpha"
echo get_class($config->three);  // Outputs "Config"
4

1 回答 1

0

编写测试的问题没有太多上下文,但我的理解是最简单的术语,您希望能够通过“->”导航以达到您想要的值。

研究使用新的 StdClass

例如

$config = new StdClass;
$config->three = new StdClass;
$config->three->a = 'alpha';
于 2012-12-22T05:05:32.823 回答