public static function get() { //Entity loader $entities = Config::getEntityNamespacePath(); //Annotation metadata driver $config = new Configuration(); $md = $config->newDefaultAnnotationDriver(array($entities['path'])); $config->setMetadataDriverImpl($md); $config->setMetadataCacheImpl(new ArrayCache()); //Set and configure preferred serializer for persistence //If using serialaztion groups you can sepcify the names here $config->setEntitySerializer(new JMSSerializer(SerializationContext::create()->setGroups('store'))); //Add event listeners here $eventManager = new EventManager(); //$eventManager->addEventListener('prePersist', $listener); //Create the client $client = new Client(array('connections' => Config::getServers())); //Get the search manager return new SearchManager($config, new ElasticaAdapter($client), $eventManager); }