Always create service interface for your service. This way you will have better structured code and phpunit testing will be real pleasure.
Also use dependency injection for your repositories in the service.
Service Interface Example
interface UserServiceInterface{ public function getUsername(); public function viewAll(); }
Service Example
class UserService implements UserServiceInterface { private $entityManager; private $userRepository; public function __construct(EntityManager $entityManager, UserRepository $userRepository) { $this->entityManager = $entityManager; $this->userRepository = $userRepository; } public function viewAll() { return $this->userRepository->findAll(); } }
Repository Example
class UserRepository extends \Doctrine\ORM\EntityRepository { public function __construct(EntityManager $em, Mapping\ClassMetadata $metadata = null) { parent::__construct( $em, $metadata == null ? new Mapping\ClassMetadata(User::class) : $metadata ); } }