No, you got it wrong. You miss the whole point of hard dependencies. I will personally never use the trait. The trait (and the aware interface) has only interest when using initializers (or for soft dependencies, but for an auth service that would not be the case).

Hard dependencies MUST be injected in the constructor, not through a setter. So no AwareInterface and no trait. Once again, the reason is that with dependencies in the constructor, you enforce that the dependency must be here. What if someone do that:

```php
$service = new MyService();
```

without using the service manager? Well... you have a broken class. When enforcing the dependency to the constructor, it will trigger an error directly. That's the whole point.