Это не надо делать в "произвольном" классе. Это надо делать в сервисе. В который все необходимые компоненты передаются через dependency injection.
При конфигурировании сервиса в services.yml все необходимые ему компоненты прописываются в аргументы конструктора
foo.service:
class: AppBundle\Helper\Foo
arguments:
$entityManager: "@doctrine.orm.entity_manager"
и потом в самом классе в конструкторе переданный аргумент присваивается переменной класса
use Doctrine\ORM\EntityManager;
class Foo
{
/**
* @Var EntityManager
*/
protected $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
Смысл в том, что в Симфони не должно быть "произвольных классов". Все классы должны укладываться в четкую стркутуру. Репозитории - для работы с БД. Контроллеры обрабатывают НТТР запросы. "произвольный код" пишется в сервисы. То есть это должен быть не просто класс, сам по себе, а сервис, описанный в конфигурации.