Reference Store¶
The reference-store is a service which collects ids of entities/documents which are used to render a page. This ids will be used for example in the caching component HttpCacheBundle.
Architecture¶
Each type of content register its own service which implements
ReferenceStoreInterface
or with the default implementation
Sulu\Bundle\ContentBundle\ReferenceStore\ReferenceStore
.
The service sulu_website.reference_store_pool
collects the services with the
tag sulu_website.reference_store
and use the alias
attribute to
identify them.
To register a loaded entity use the concrete store (e.g.
sulu_content.reference_store.content
or your own service) and call the
method add
to append the id of the entity.
Example¶
<service id="app.reference_store.example"
class="Sulu\Bundle\WebsiteBundle\ReferenceStore\ReferenceStore">
<tag name="sulu_website.reference_store" alias="example"/>
</service>
$exampleReferenceStore = $container->get('app.reference_store.example');
$exampleReferenceStore->add(1);
$referenceStore = $container->get('sulu_website.reference_store');
var_dump($referenceStore->getStore('example')->getAll());
// prints
// array(1) {
// [0] =>
// int(1)
// }