/** * @param Pimple\Container $container [description] */ public function register(Container $container) { $container['solr'] = function ($c) { if (isset($c['config']['solr']['endpoint'])) { $solrService = new \Solarium\Client($c['config']['solr']); $solrService->setDefaultEndpoint('localhost'); return $solrService; } else { return null; } }; $container['solr.ready'] = function ($c) { if (null !== $c['solr']) { // create a ping query $ping = $c['solr']->createPing(); // execute the ping query try { $c['solr']->ping($ping); return true; } catch (\Exception $e) { return false; } } else { return false; } }; $container['solr.search.nodeSource'] = function ($c) { if ($c['solr.ready']) { return new FullTextSearchHandler($c['solr'], $c['em']); } else { return null; } }; return $container; }