would it make sense to pass the 2nd argument with a function which expects a $self parameter, so it will be less magically where `$self` is coming from?

e.g.

```
      $proxy = $factory->createProxy(new Foo(), function($self) {
        return array(
            'bar' => array(
                function($string) { return $string; },
                function(\stdClass $std) { return $std->string; }
            ),
            'property' => array(
                function($name) { return $self->$name; } // $self will be automatically created
            ),
          );
        }
     );
```