make the App
the root of whole application and introduce Home
as a subapp #2240
Description
The name App
sounds like the only root of the application structure (could be a singleton) but actually, it is also a container of a group of URLs that is independently configurable with middlewares and error handlers. The App.Group()
and App.Resource()
return a new App
which is a child of the root App
, it's OK, but they have the whole functions of App
which is not desirable.
By #2226, a quick fix for #2185, I changed some of the internal implementations of App
while keeping the external behavior the same, but there are still some issues caused by the current design. Since we are now discussing v1, the future of buffalo, so I would like to suggest that we keep this structure for the current version and improve the core when we move to the next version.
TODO
- make the
Home
the container of a group of URLs and its independent middlewares and error handlers (half done) - make
Home
as a child of theApp
. - make
App
as a singleton (but we need more consideration for this since it is not always a good thing.)