php component dependency injection by using a specification container