Symfony services¶
Netgen Layouts provides a number of Symfony services that you can use to work in PHP code with layouts, blocks, collections, queries and so on.
API services¶
The following services are the entry point and central place for all operations with any entity available in Netgen Layouts. It is used by Netgen Layouts itself to render the layouts in the frontend, in REST API used in layout editing app and in the admin interface. Basically, they provide a CRUD interface to work with layouts, blocks, collections and layout resolver rules.
Service name | Description |
---|---|
netgen_layouts.api.service.layout |
CRUD operations for layouts |
netgen_layouts.api.service.block |
CRUD operations for blocks |
netgen_layouts.api.service.collection |
CRUD operations for collections |
netgen_layouts.api.service.layout_resolver |
CRUD operations for layout resolver rules |
netgen_layouts_enterprise.api.service.role |
CRUD operations for roles and policies |
View API¶
The following services can be used to manually render any entity in Netgen Layouts.
Service name | Description |
---|---|
netgen_layouts.view.view_builder |
Used to manually build the view for the entity. |
netgen_layouts.view.view_renderer |
Used to manually render the entity view once it has been built. |
netgen_layouts.view.renderer |
Shortcut service that uses view builder and view renderer services to render the provided entity. |
Block items¶
The following services can be used to manually load and build block items to inject them into blocks and link to them.
Service name | Description |
---|---|
netgen_layouts.item.item_builder |
Used to manually build the item from the provided entity. |
netgen_layouts.item.item_loader |
Used to manually load the item from provided value type and value. |
netgen_layouts.item.url_generator |
Used to generate the URL to the item. |
Registries¶
A number of registries is provided so you can access the list of all available block definitions, query types and so on.
Service name | Description |
---|---|
netgen_layouts.block.registry.block_definition |
Used to access all available block definitions |
netgen_layouts.block.registry.block_type |
Used to access all available block types |
netgen_layouts.block.registry.block_type_group |
Used to access all available block type groups |
netgen_layouts.collection.registry.query_type |
Used to access all available query types |
netgen_layouts.parameters.registry.parameter_type |
Used to access all available parameter types |
netgen_layouts.item.registry.value_type |
Used to access all available value types |
netgen_layouts.layout.registry.layout_type |
Used to access all available layout types |
netgen_layouts.layout.resolver.registry.target_type |
Used to access all available target types |
netgen_layouts.layout.resolver.registry.condition_type |
Used to access all available condition types |
netgen_layouts.collection.registry.item_definition |
Used to access all available item definitions |
netgen_layouts.block.registry.handler_plugin |
Used to access all available block plugin handlers |
netgen_layouts_enterprise.security.registry.limitation_type |
Used to access all available limitation types |
netgen_layouts_enterprise.security.registry.permission_definition |
Used to access all available permission definitions |
Shortcut services¶
Some of the entities that can be accessed through one of the above registries
can also be accessed directly by using a unique service name. All of those
service names are in the form of <prefix>.<identifier>
. Prefix is the same
for all entities that implement the same interface, while identifier identifies
a single entity.
The following table lists all available service prefixes:
Entity type | Service prefix |
---|---|
Block definition | netgen_layouts.block.block_definition. |
Block type | netgen_layouts.block.block_type. |
Block type group | netgen_layouts.block.block_type_group. |
Query type | netgen_layouts.collection.query_type. |
Value type | netgen_layouts.item.value_type. |
Layout type | netgen_layouts.layout.layout_type. |
Item definition | netgen_layouts.collection.item_definition. |
As an example, if you wish to load the service for title
block definition,
you would use a service name netgen_layouts.block.block_definition.title
.
Other services¶
The following lists various other useful services which can be used by client code:
Service name | Description |
---|---|
netgen_layouts.http_cache.invalidator |
Provides APIs for invalidating layout and block HTTP caches |
netgen_layouts.configuration |
Provides a way to access Netgen Layouts configuration values |
netgen_layouts.collection.result_builder |
Generates the collection result (items) from a provided collection |
netgen_layouts.layout.resolver |
Exposes APIs to manually run the layout resolving process on a request |
Ibexa CMS specific services¶
The following lists various useful services available when Netgen Layouts is installed on top of Ibexa CMS.
Service name | Description |
---|---|
netgen_layouts.ibexa.content_provider |
Used to extract current content and location for use by contextual blocks and queries |