namespace Drupal\admin_toolbar_tools\Controller;
-use Drupal\Component\Datetime\Time;
+use Drupal\Component\Datetime\TimeInterface;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\CronInterface;
-use Drupal\Core\Menu\ContextualLinkManager;
-use Drupal\Core\Menu\LocalActionManager;
-use Drupal\Core\Menu\LocalTaskManager;
-use Drupal\Core\Menu\MenuLinkManager;
+use Drupal\Core\Menu\ContextualLinkManagerInterface;
+use Drupal\Core\Menu\LocalActionManagerInterface;
+use Drupal\Core\Menu\LocalTaskManagerInterface;
+use Drupal\Core\Menu\MenuLinkManagerInterface;
use Drupal\Core\Plugin\CachedDiscoveryClearerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\RequestStack;
+use Drupal\Core\PhpStorage\PhpStorageFactory;
/**
* Class ToolbarController.
/**
* A menu link manager instance.
*
- * @var \Drupal\Core\Menu\MenuLinkManager
+ * @var \Drupal\Core\Menu\MenuLinkManagerInterface
*/
protected $menuLinkManager;
/**
* A context link manager instance.
*
- * @var \Drupal\Core\Menu\ContextualLinkManager
+ * @var \Drupal\Core\Menu\ContextualLinkManagerInterface
*/
protected $contextualLinkManager;
/**
* A local task manager instance.
*
- * @var \Drupal\Core\Menu\LocalTaskManager
+ * @var \Drupal\Core\Menu\LocalTaskManagerInterface
*/
protected $localTaskLinkManager;
/**
* A local action manager instance.
*
- * @var \Drupal\Core\Menu\LocalActionManager
+ * @var \Drupal\Core\Menu\LocalActionManagerInterface
*/
protected $localActionLinkManager;
/**
* A date time instance.
*
- * @var \Drupal\Component\Datetime\Time
+ * @var \Drupal\Component\Datetime\TimeInterface
*/
protected $time;
protected $pluginCacheClearer;
/**
- * {@inheritdoc}
+ * Constructs a ToolbarController object.
+ *
+ * @param \Drupal\Core\CronInterface $cron
+ * A cron instance.
+ * @param \Drupal\Core\Menu\MenuLinkManagerInterface $menuLinkManager
+ * A menu link manager instance.
+ * @param \Drupal\Core\Menu\ContextualLinkManagerInterface $contextualLinkManager
+ * A context link manager instance.
+ * @param \Drupal\Core\Menu\LocalTaskManagerInterface $localTaskLinkManager
+ * A local task manager instance.
+ * @param \Drupal\Core\Menu\LocalActionManagerInterface $localActionLinkManager
+ * A local action manager instance.
+ * @param \Drupal\Core\Cache\CacheBackendInterface $cacheRender
+ * A cache backend interface instance.
+ * @param \Drupal\Component\Datetime\TimeInterface $time
+ * A date time instance.
+ * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
+ * A request stack symfony instance.
+ * @param \Drupal\Core\Plugin\CachedDiscoveryClearerInterface $plugin_cache_clearer
+ * A plugin cache clear instance.
*/
public function __construct(CronInterface $cron,
- MenuLinkManager $menuLinkManager,
- ContextualLinkManager $contextualLinkManager,
- LocalTaskManager $localTaskLinkManager,
- LocalActionManager $localActionLinkManager,
+ MenuLinkManagerInterface $menuLinkManager,
+ ContextualLinkManagerInterface $contextualLinkManager,
+ LocalTaskManagerInterface $localTaskLinkManager,
+ LocalActionManagerInterface $localActionLinkManager,
CacheBackendInterface $cacheRender,
- Time $time,
+ TimeInterface $time,
RequestStack $request_stack,
CachedDiscoveryClearerInterface $plugin_cache_clearer) {
$this->cron = $cron;
return new RedirectResponse($this->reloadPage());
}
+ /**
+ * Clears the twig cache.
+ */
+ public function flushTwig() {
+ // @todo Update once Drupal 8.6 will be released.
+ // @see https://www.drupal.org/node/2908461
+ PhpStorageFactory::get('twig')->deleteAll();
+ drupal_set_message($this->t('Twig cache cleared.'));
+ return new RedirectResponse($this->reloadPage());
+ }
+
/**
* Run the cron.
*/