HTTP Fragment¶
The HttpFragmentServiceProvider provides support for the Symfony fragment sub-framework, which allows you to embed fragments of HTML in a template.
Parameters¶
- fragment.path: The path to use for the URL generated for ESI and
HInclude URLs (
/_fragmentby default). - uri_signer.secret: The secret to use for the URI signer service (used for the HInclude renderer).
- fragment.renderers.hinclude.global_template: The content or Twig template to use for the default content when using the HInclude renderer.
Services¶
- fragment.handler: An instance of FragmentHandler.
- fragment.renderers: An array of fragment renderers (by default, the inline, ESI, and HInclude renderers are pre-configured).
Registering¶
$app->register(new Mascot\Provider\HttpFragmentServiceProvider());
Usage¶
Note
This section assumes that you are using Twig for your templates.
Instead of building a page out of a single request/controller/template, the fragment framework allows you to build a page from several controllers/sub-requests/sub-templates by using fragments.
Including “sub-pages” in the main page can be done with the Twig render()
function:
The main page content.
{{ render('/foo') }}
The main page content resumes here.
The render() call is replaced by the content of the /foo URL
(internally, a sub-request is handled by Mascot to render the sub-page).
Instead of making internal sub-requests, you can also use the ESI (the sub-request is handled by a reverse proxy) or the HInclude strategies (the sub-request is handled by a web browser):
{{ render(url('route_name')) }}
{{ render_esi(url('route_name')) }}
{{ render_hinclude(url('route_name')) }}