It is often useful to know how Grav processes in order to fully understand how best to extend Grav via plugins. This is the Grav lifecycle:
load()
loader
debugger
grav
(deprecated)permissions
(1.7)accounts
(1.6)user_groups
(1.7)users
(deprecated)assets
backups
(1.6)setup
blueprints
config
languages
language
error
filesystem
flex
(1.7)inflector
log
output
pages
page
request
(1.7)scheduler
(1.6)session
messages
locator
streams
task
action
browser
cache
events
exif
plugins
taxonomy
themes
twig
uri
Grav::process()
$grav['config']
$grav['plugins']
$grav['log']
$grav['errors']
$grav['debugger']
$grav['plugins']
$grav['pages']
$grav['uri']
$grav['base_url_absolute']
$grav['base_url_relative']
$grav['base_url']
system.pages.redirect_trailing_slash
is true and trailing slash in URL$grav['accounts']
$grav['session']
if If system.session.initialize
is true
$grav['themes']
$grav['request']
NotFoundException
: continue (check task and action)$grav['backups']
$grav['scheduler']
$grav['assets']
$grav['twig']
$grav['pages']
buildPages()
recurse()
recurse()
.md
file is found:
folder
found recurse()
the childrenbuildRoutes()
taxonomy
for all pagesroute
table for fast lookup$grav['output']
output
instanceof ResponseInterface
:
processSite()
method
render()
methodWhenever a page has its content()
method called, the following lifecycle occurs:
Found errors? Think you can improve this documentation? Simply click the Edit link at the top of the page, and then the icon on Github to make your changes.
Powered by Grav + with by Trilby Media.