Dynamically change entity manager connection based on subdomain

Viewed 191

I'm trying to change the db connection based on current subdomain. So far I've managed to create a kernel.request listener and injecting the entity manager.

services.yaml

services:
    app.listener.currentSubdomain:
        class: App\EventListener\CurrentSubdomainListener
        arguments: ['@doctrine.orm.entity_manager']
        tags:
            - { name: kernel.event_listener, event: kernel.request }

CurrentSubdomainListener.php

<?php

namespace App\EventListener;

use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpKernel\Event\RequestEvent;

class CurrentSubdomainListener{

  protected $entityManager;

  public function __construct(EntityManager $entityManager){
    $this->entityManager = $entityManager;
  }

  public function onKernelRequest(RequestEvent $event){
   
    //Change entity manager connection
  }
}

How can I set the entity manager connection inside onKernelRequest(), so that when I auto wire it into any controllers it'll automatically use the connection I set?

0 Answers
Related