Ferreteria/v0.5/startup: Difference between revisions
< Ferreteria | v0.5
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
This is the chain of events that takes place, in a typical application based on {{l/ver/class|caAppUser}} ("the App object" or just "App"), when the site is invoked (i.e. a page is requested, possibly just the front page or possibly something more specific). | This is the chain of events that takes place, in a typical application based on {{l/ver/class|caAppUser}} ("the App object" or just "App"), when the site is invoked (i.e. a page is requested, possibly just the front page or possibly something more specific). | ||
Assuming there are no initialization problems, the {{l/ver/class|caAppUser}} object calls its <code>Main()</code> function | * Assuming there are no initialization problems, the {{l/ver/class|caAppUser}} object calls its <code>Main()</code> function, which then: | ||
** opens the database and, if successful, calls its <code>GetPageObject()</code> method to get the Output Page (a {{l/ver/class|caWebPage}} podling) object to use for rendering. The class to used is determined by the Ferreteria deployment's configuration, and is not (at least by default) affected by the URI data. | |||
** calls the Output Page (OP) object's {{l/ver/meth|caWebPage|DoAllEvents}} method. | |||
*** The OP defines what events are needed to process input and build the output; see the Startup section in the Page object's documentation to find out what happens next. | |||
==Changes== | ==Changes== | ||
* '''2022-12-16''' Output revision to use evint now largely complete, although some things still aren't displaying properly (navbar, stashed messages). | |||
* '''2022-06-22''' DoOutput() now ''also'' uses the evint system. Subsidiary classes need revision to be in line with this. | * '''2022-06-22''' DoOutput() now ''also'' uses the evint system. Subsidiary classes need revision to be in line with this. | ||
** WAS: DoOutput() actually calls $this->Render() which calls $this->RenderNodes() which must be defined by the Page object. The standard implementation is to use the tRenderableTree trait, which then iterates through each sub-node... this doesn't quite make sense. At what point is the Render event created? | ** WAS: DoOutput() actually calls $this->Render() which calls $this->RenderNodes() which must be defined by the Page object. The standard implementation is to use the tRenderableTree trait, which then iterates through each sub-node... this doesn't quite make sense. At what point is the Render event created? | ||
** cEvent* classes should be renamed to remove the redundant "Event", since they're already in the ferret\evint namespace (...or possibly all the events should be in the ferret\page namespace...) | ** cEvent* classes should be renamed to remove the redundant "Event", since they're already in the ferret\evint namespace (...or possibly all the events should be in the ferret\page namespace...) |
Revision as of 17:02, 16 December 2022
Ferreteria startup process
|
This is the chain of events that takes place, in a typical application based on caAppUser ("the App object" or just "App"), when the site is invoked (i.e. a page is requested, possibly just the front page or possibly something more specific).
- Assuming there are no initialization problems, the caAppUser object calls its
Main()
function, which then:- opens the database and, if successful, calls its
GetPageObject()
method to get the Output Page (a caWebPage podling) object to use for rendering. The class to used is determined by the Ferreteria deployment's configuration, and is not (at least by default) affected by the URI data. - calls the Output Page (OP) object's DoAllEvents() method.
- The OP defines what events are needed to process input and build the output; see the Startup section in the Page object's documentation to find out what happens next.
- opens the database and, if successful, calls its
Changes
- 2022-12-16 Output revision to use evint now largely complete, although some things still aren't displaying properly (navbar, stashed messages).
- 2022-06-22 DoOutput() now also uses the evint system. Subsidiary classes need revision to be in line with this.
- WAS: DoOutput() actually calls $this->Render() which calls $this->RenderNodes() which must be defined by the Page object. The standard implementation is to use the tRenderableTree trait, which then iterates through each sub-node... this doesn't quite make sense. At what point is the Render event created?
- cEvent* classes should be renamed to remove the redundant "Event", since they're already in the ferret\evint namespace (...or possibly all the events should be in the ferret\page namespace...)