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 registers its own service which implements the
ReferenceStoreInterface or with the default implementation
Sulu\Bundle\PageBundle\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_page.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)
// }