Getting started
Twig Hooks are a robust and powerful alternative to the Sonata Block Events and the old Sylius Template Events systems.
Main features
built-in support for Twig templates, Twig Components and Symfony Live Components
adjustability
autoprefixing hooks
configurable hookables
priority mechanism
easy enable/disable mechanism for each hook
Installation
Install the package using Composer and Symfony Flex:
Your first hook & hookable
Once Twig Hooks is installed, you can open any Twig file and define your first hook.
This way, my_first_hook
becomes a unique name which we can use to hook into that specific spot.
The ideal hook name:
is lowercase
has its logical parts separated with dots (
.
)when there is more than one word, they are separated by underscores (
_
)
Recommended:
index
index.sidebar
index.top_menu
Not recommended:
index
indextopmenu
Hooking into a hook
For the purpose of this example, let's consider we want to render the some_block.html.twig
template inside the my_first_hook
hook. First step is to create a twig_hooks.yaml
file (or any other format you use) under the config/packages/
directory (if you don't have one already, of course).
Now, we can define our first hookable with the following configuration:
Decomposing the example above we can notice that:
sylius_twig_hooks
is the main key for Twig Hooks configurationhooks
is a configuration key for defining hookables for all hooksmy_first_hook
is our hook name, defined on the Twig file levelsome_block
is the name of our hookable, it can be any string, but it should be unique for a given hook unless you want to override the existing hookable (if you want to read more about overriding hookables check the overriding-hookables.md section)finally we have a
template
key that defines which template should be rendered inside themy_first_hook
hook
Possible hookable configuration options
Depending on the hookable template, we can pass different configuration options while defining hookables:
Last updated