Download the PHP package netzmacht/contao-page-context without Composer
On this page you can find all versions of the php package netzmacht/contao-page-context. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package contao-page-context
Contao Page Context
This Contao extension allows developer manually boot the page context of Contao when using custom routes.
Parts of the Contao CMS relies on the existing of global state initialized when rendering a page. Modules, content elements, insert tags and custom extensions might rely that this state is initialized.
For instance Contao developers access the $GLOBALS['objPage']
as there is no other way to get the current page.
However, when using a custom entrypoint, for example for an API, you don't have this state initialized. Using the Contao library and functionality might end in unexpected errors.
This is the point there this extension steps in. It allows you to boot the page context manually for your route.
In detail it, initialize following steps:
- The Contao framework
- Constant
BE_USER_LOGGED_IN
andFE_USER_LOGGED_IN
tofalse
if not defined. - Loading the page from the database
- Globals
objPage
,TL_ADMIN_NAME
,TL_ADMIN_EMAIL
,TL_KEYWORDS
,TL_LANGUAGE
- Initialize the locale of the request and the translator
- Loads the default language file
- Calls
Controller::initializeStaticUrls()
- Initializes the page layout (triggers
getPageLayout
hook)
Requirements
- Contao
^4.9
- PHP
^7.1 || ^8.0
Installation
Usage
1. Implement a PageIdDeterminator and register it properly
First you have to provide a PageIdDeterminator. It's responsible to extract the page id from the given request.
You should limit the determinator to your special use case, that's why there is the match()
method.
Now you have to register it as a service and tag it as Netzmacht\Contao\PageContext\Request\PageIdDeterminator
.
2. Prepare your route
As already seen in the example above, a custom route attribute is accessed, here _my_context
. You should define it in
your route configuration:
3. Accessing the page object
That's it. If you try to access $GLOBALS['objPage']
you should have the page object. Good news, you can avoid
accessing the global state. Your current Request have a new attribute, called _page_context
.
All versions of contao-page-context with dependencies
beberlei/assert Version ^2.7 || ^3.0
contao/core-bundle Version ^4.13 || ^5.2
netzmacht/contao-toolkit Version ^3.9 || ^4.0
psr/log Version ^1.0 || ^2.0 || ^3.0
symfony/config Version ^5.4 || ^6.0
symfony/dependency-injection Version ^5.4 || ^6.0
symfony/http-foundation Version ^5.4 || ^6.0
symfony/http-kernel Version ^5.4 || ^6.0
symfony/security-core Version ^5.4 || ^6.0
symfony/translation-contracts Version ^1.1 || ^2.0 || ^3.0