@@ -145,9 +145,24 @@ private function loadIndexes(array $indexes, ContainerBuilder $container)
145145 'name ' => $ name ,
146146 ));
147147
148+ if (method_exists ($ indexDef , 'setFactory ' )) {
149+ $ indexDef ->setFactory (array (new Reference ('fos_elastica.client ' ), 'getIndex ' ));
150+ } else {
151+ // To be removed when dependency on Symfony DependencyInjection is bumped to 2.6
152+ $ indexDef ->setFactoryService ('fos_elastica.client ' );
153+ $ indexDef ->setFactoryMethod ('getIndex ' );
154+ }
155+
148156 if (isset ($ index ['client ' ])) {
149157 $ client = $ this ->getClient ($ index ['client ' ]);
150- $ indexDef ->setFactoryService ($ client );
158+
159+ if (method_exists ($ indexDef , 'setFactory ' )) {
160+ $ indexDef ->setFactory (array ($ client , 'getIndex ' ));
161+ } else {
162+ // To be removed when dependency on Symfony DependencyInjection is bumped to 2.6
163+ $ indexDef ->setFactoryService ($ client );
164+ $ indexDef ->setFactoryMethod ('getIndex ' );
165+ }
151166 }
152167
153168 $ container ->setDefinition ($ indexId , $ indexDef );
@@ -215,7 +230,15 @@ private function loadTypes(array $types, ContainerBuilder $container, array $ind
215230 $ typeId = sprintf ('%s.%s ' , $ indexConfig ['reference ' ], $ name );
216231 $ typeDef = new DefinitionDecorator ('fos_elastica.type_prototype ' );
217232 $ typeDef ->replaceArgument (0 , $ name );
218- $ typeDef ->setFactoryService ($ indexConfig ['reference ' ]);
233+
234+ if (method_exists ($ typeDef , 'setFactory ' )) {
235+ $ typeDef ->setFactory (array ($ indexConfig ['reference ' ], 'getType ' ));
236+ } else {
237+ // To be removed when dependency on Symfony DependencyInjection is bumped to 2.6
238+ $ typeDef ->setFactoryService ($ indexConfig ['reference ' ]);
239+ $ typeDef ->setFactoryMethod ('getType ' );
240+ }
241+
219242 $ container ->setDefinition ($ typeId , $ typeDef );
220243
221244 $ typeConfig = array (
0 commit comments