Вы не совсем правильно понимаете задачи контейнера зависимостей и принципы его работы. Поэтому рекомендую ознакомиться с
документацией.
Суть контейнера в том что Вы настраиваете конфигурации компонентов находящихся в нем, а так же зависимости компонентов друг от друга, а уже сам контейнер разбирается как создать объект на основе всех этих данных и со всеми зависимостями. Вы по сути дела только написали лишний код, который реализован в контейнере по умолчанию.
Возьмем например Ваш объект репозитория, его достаточно зарегистрировать в контейнере так
Yii::$container->setSingleton('common\domain\Entities\User\Profile\Interfaces\Repository', // указываем интерфейс
[ // указываем конфигурацию класса реализующего этот интерфейс
'class' => 'common\infrastructure\Entities\User\Profile\Repository'
],
[ // указываем какие данные необходимо передать в конструктор, в частности - экземпляр класса UserProfile
Instance::of('common\models\ActiveRecord\UserProfile')
]
);
Контейнер соответственно сам проинжектит в объекты использующие common\domain\Entities\User\Profile\Interfaces\Repository объект common\infrastructure\Entities\User\Profile\Repository
Сервис регистрируется аналогично:
Yii::$container->setSingleton('common\domain\Entities\User\Profile\Interfaces\Service',
[
'class' => 'common\application\User\Profile\Service',
],
[
Instance::of('common\domain\Entities\User\Profile\Interfaces\Repository')
],
);
При создании сервиса, контейнер найден в своих данных объект соответствующий common\domain\Entities\User\Profile\Interfaces\Repository создаст его и проинжектит в сервис