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
|
|
);
|
|
}
|
|
}
|