phpzend-framework2zend-framework-mvc

ZF2: What is the difference between bootstrap() and run() at the Application level?


This question is Zend Framework 2 related.

After quite a bit of (re-)reading and Googling, I've come up short:


Solution

  • I am not sure why you would want to know the details upto this depth. The difference does not really affect, if changed.

    In respect to a ZF2 application, what is the actual difference between bootstrap() and run()?

    bootstrap() is an independent class construct. run() is part of the Application class.

    Why use one over the other?

    Bootstrap runs BEFORE anything else. It also initializes the init functions of various classes (not in the abstract). Run runs after that. In other words, Bootstrap will fill and load the gun, Run is like pulling the trigger.

    Why does the ZF2 Skeleton use run() with no mention of bootstrap() anywhere?

    Skeleton is a base skeleton application, which is called AFTER the bootstrap of framework has been called already!

    When, then, would one use bootstrap() if everything works when using run()?

    No, as I said, Bootstrap is like loading the guns and Run is like pulling the trigger. If you have nothing to load, you cannot run anything. Run calls the Bootstrap if not implicitly called.

    Does run() call boostrap() implicitly?

    Ideally, it should.