To make it works, I inject the serializer defined for the Type into the fos_elastica.object_serializer_persister service. This is the SAME service injected in the setSerializer of Type. We deport the handling of serialization outside Elastica, this is not so good but we need to build our own Documents to get the ID's correctly.
90 lines
4.7 KiB
XML
90 lines
4.7 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
<container xmlns="http://symfony.com/schema/dic/services"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
|
|
|
<parameters>
|
|
<parameter key="fos_elastica.client.class">FOS\ElasticaBundle\Client</parameter>
|
|
<parameter key="fos_elastica.index.class">Elastica\Index</parameter>
|
|
<parameter key="fos_elastica.type.class">Elastica\Type</parameter>
|
|
<parameter key="fos_elastica.logger.class">FOS\ElasticaBundle\Logger\ElasticaLogger</parameter>
|
|
<parameter key="fos_elastica.data_collector.class">FOS\ElasticaBundle\DataCollector\ElasticaDataCollector</parameter>
|
|
<parameter key="fos_elastica.manager.class">FOS\ElasticaBundle\Manager\RepositoryManager</parameter>
|
|
<parameter key="fos_elastica.elastica_to_model_transformer.collection.class">FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerCollection</parameter>
|
|
<parameter key="fos_elastica.provider_registry.class">FOS\ElasticaBundle\Provider\ProviderRegistry</parameter>
|
|
<parameter key="fos_elastica.property_accessor.class">Symfony\Component\PropertyAccess\PropertyAccessor</parameter>
|
|
</parameters>
|
|
|
|
<services>
|
|
|
|
<service id="fos_elastica.logger" class="%fos_elastica.logger.class%">
|
|
<argument type="service" id="logger" on-invalid="null" />
|
|
<argument>%kernel.debug%</argument>
|
|
<tag name="monolog.logger" channel="elastica" />
|
|
</service>
|
|
<service id="fos_elastica.data_collector" class="%fos_elastica.data_collector.class%" public="true">
|
|
<tag name="data_collector" template="FOSElasticaBundle:Collector:elastica" id="elastica" />
|
|
<argument type="service" id="fos_elastica.logger" />
|
|
</service>
|
|
|
|
<service id="fos_elastica.index_manager" class="FOS\ElasticaBundle\IndexManager">
|
|
<argument /> <!-- indexes -->
|
|
<argument /> <!-- default index -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.resetter" class="FOS\ElasticaBundle\Resetter">
|
|
<argument /> <!-- index configs -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.object_persister" class="FOS\ElasticaBundle\Persister\ObjectPersister" abstract="true">
|
|
<argument /> <!-- type -->
|
|
<argument /> <!-- model to elastica transformer -->
|
|
<argument /> <!-- model -->
|
|
<argument /> <!-- properties mapping -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.finder" class="FOS\ElasticaBundle\Finder\TransformedFinder" public="true" abstract="true">
|
|
<argument /> <!-- searchable -->
|
|
<argument /> <!-- transformer -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.object_serializer_persister" class="FOS\ElasticaBundle\Persister\ObjectSerializerPersister" abstract="true">
|
|
<argument /> <!-- type -->
|
|
<argument /> <!-- model to elastica transformer -->
|
|
<argument /> <!-- model -->
|
|
<argument /> <!-- serializer -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.model_to_elastica_transformer" class="FOS\ElasticaBundle\Transformer\ModelToElasticaAutoTransformer" public="false" abstract="true">
|
|
<argument /> <!-- options -->
|
|
<call method="setPropertyAccessor">
|
|
<argument type="service" id="fos_elastica.property_accessor" />
|
|
</call>
|
|
</service>
|
|
|
|
<service id="fos_elastica.model_to_elastica_identifier_transformer" class="FOS\ElasticaBundle\Transformer\ModelToElasticaIdentifierTransformer" public="false" abstract="true">
|
|
<argument /> <!-- options -->
|
|
<call method="setPropertyAccessor">
|
|
<argument type="service" id="fos_elastica.property_accessor" />
|
|
</call>
|
|
</service>
|
|
|
|
<service id="fos_elastica.elastica_to_model_transformer.collection" class="%fos_elastica.elastica_to_model_transformer.collection.class%" public="true" abstract="true">
|
|
<argument type="collection" /> <!-- transformers -->
|
|
</service>
|
|
|
|
<service id="fos_elastica.provider_registry" class="%fos_elastica.provider_registry.class%">
|
|
<call method="setContainer">
|
|
<argument type="service" id="service_container" />
|
|
</call>
|
|
</service>
|
|
|
|
<service id="fos_elastica.paginator.subscriber" class="FOS\ElasticaBundle\Subscriber\PaginateElasticaQuerySubscriber">
|
|
<tag name="knp_paginator.subscriber" />
|
|
</service>
|
|
|
|
<service id="fos_elastica.property_accessor" class="%fos_elastica.property_accessor.class%" />
|
|
</services>
|
|
|
|
</container>
|