I try to understand how Drupal Core rebuild the route automatically after route created programaticaly.
here is one example that i tried: I’m installing External Entities Module. this module will allow you to create entity and generate its route automatically.
question: how is this possible? what trigger Drupal core to rebuild the route?
i did stack trace on entity form-save action as follow: (to understand what’s triggered route rebuild)
- KernelDesctructionSubscriber.php line 48 –> 
public function onKernelTerminate(PostResponseEvent $event) - ContainerAwareEventDispacther.php line 111 –> 
$definition['callable']($event, $event_name, $this); - HttpKernel.php Line 84 –> 
$this->dispatcher->dispatch(KernelEvents::TERMINATE, new PostResponseEvent($this, $request, $response)); - StackedHttpKernel.Php Line 32 –> 
$kernel->terminate($request, $response); - Drupal Kernel Line 634 –> 
$this->getHttpKernel()->terminate($request, $response); - index.php Line 22 –> 
$kernel->terminate($request, $response); 
if you see KernelDestructionSubscriber in specific on: onKernelTerminate
public function onKernelTerminate(PostResponseEvent $event) {     foreach ($this->services as $id) {       // Check if the service was initialized during this request, destruction       // is not necessary if the service was not used.       if ($this->container->initialized($id)) {         $service = $this->container->get($id);         $service->destruct();       }     }   } 
when the ID equal to drupal.proxy_original_service.router.builder then it goes to: container.php : initialized method below:
  public function initialized($id) {     if (isset($this->aliases[$id])) {       $id = $this->aliases[$id];     }      return isset($this->services[$id]) || array_key_exists($id, $this->services);   } 
it will return TRUE because $this->services[$id] is set
and then it will trigger: $service->destruct() in onKernelTerminate then rebuild the route.
the question is where in the External Entities code that will make $this->services[$id] is set then trigger rebuild route?
i’ve been spending quite sometime and still unable to crack this…
Thanks in advance for the help