Differences between different methods of Symfony service collection

  containers, dependency-injection, symfony

For those of you that are familiar with the building of the Symfony container, do you know what is the differences (if any) between

  1. Tagged service Collector using a Compiler pass
  2. Tagged service Collector using the supported shortcut
  3. Service Locator especially, one that collects services by tags
    Specifically, I am wondering about whether these methods differ on making these collected services available sooner or later in the container build process. Also I am wondering about the ‘laziness’ of any of them.

Source: Symfony Questions