One caveat here. The `property_accessor` service is only going to be defined for Symfony 2.2, as the component itself is not aware of the DIC. Perhaps as a fallback, we can use the static factory method in [PropertyAccess](https://github.com/symfony/PropertyAccess/blob/master/PropertyAccess.php)?

I don't see a way to generically handle both cases in the DI configurations, other than allowing `null` to be injected and having the setter fetch an instance via the factory method internally if its argument is null. Seems a bit odd to have that logic in a setter method, but it's something I've seen constructors do for their optional dependencies. I also agree with your comments about constructor arguments getting out of hand, which is why I used a setter in my last PR for this.

@dbu: Any thoughts?