Here are a few observations: - Application instance should clearly be a singleton instance. I couldn't find any reasons why a dev should be able to have multiple. - We should get rid of the injection factory and leave injections to the dic. The new one will handle deps quite wisely. - We should stop using the container as a service locator (looking at you, request stack). It should be injected into the application IMO. - In general the application object should hold everything which is needed by the framework and everything should be retrieved from it if possible.
Here are a few observations: