SolrReloadCoreForm.php in Search API Solr 8.2
File
modules/search_api_solr_admin/src/Form/SolrReloadCoreForm.php
View source
<?php
namespace Drupal\search_api_solr_admin\Form;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\search_api\ServerInterface;
use Drupal\search_api_solr\SolrBackendInterface;
use Drupal\Core\Messenger\MessengerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class SolrReloadCoreForm extends FormBase {
private $search_api_server;
public function __construct(MessengerInterface $messenger) {
$this->messenger = $messenger;
}
public function getFormId() {
return 'solr_reload_core_form';
}
public function buildForm(array $form, FormStateInterface $form_state, ServerInterface $search_api_server = NULL) {
$this->search_api_server = $search_api_server;
$core = $search_api_server
->getBackendConfig()['connector_config']['core'];
$form['#title'] = $this
->t('Reload core %core', [
'%core' => $core,
]);
$form['actions'] = [
'submit' => [
'#type' => 'submit',
'#value' => $this
->t('Reload'),
],
];
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$core = $this->search_api_server
->getBackendConfig()['connector_config']['core'];
try {
$connector = $this->search_api_server
->getBackend()
->getSolrConnector();
$result = $connector
->reloadCore();
if ($result) {
$this->messenger
->addMessage($this
->t('Core %core reloaded.', [
'%core' => $core,
]));
}
} catch (\Exception $e) {
$this->messenger
->addError($e
->getMessage());
watchdog_exception('search_api_solr', $e);
}
}
public static function create(ContainerInterface $container) {
return new static($container
->get('messenger'));
}
}