Loading README.txt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ the 7.x-1.x version of this module! - One of the two PECL memcache packages: - http://pecl.php.net/package/memcache (recommended) - http://pecl.php.net/package/memcached - Using the submodule, memcache_admin, requires Drupal 9.1 or later. For more detailed instructions on installing a memcached daemon or either of the memcache PECL extensions, please see the documentation online at Loading memcache.info.yml +1 −1 Original line number Diff line number Diff line Loading @@ -2,4 +2,4 @@ name: Memcache description: 'High performance integration with memcache.' type: module package: 'Performance and scalability' core_version_requirement: ^8.9 || ^9 core_version_requirement: '^9.1 || ^10' memcache.services.yml +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ services: arguments: ['@memcache.factory', 'memcache_bin_timestamps', 0.001] cache.backend.memcache: class: Drupal\memcache\MemcacheBackendFactory arguments: ['@memcache.factory', '@cache_tags.invalidator.checksum', '@memcache.timestamp.invalidator.bin'] arguments: ['@memcache.factory', '@cache_tags.invalidator.checksum', '@memcache.timestamp.invalidator.bin', '@datetime.time'] memcache.lock.factory: class: Drupal\memcache\Lock\MemcacheLockFactory arguments: ['@memcache.factory'] memcache_admin/memcache_admin.info.yml +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ name: Memcache Admin description: Adds a User Interface to monitor the Memcache for this site. package: Performance and scalability type: module core_version_requirement: ^8.9 || ^9 core_version_requirement: '^9.1 || ^10' configure: memcache_admin.settings Loading memcache_admin/src/Controller/MemcacheStatisticsController.php +72 −11 Original line number Diff line number Diff line Loading @@ -2,12 +2,17 @@ namespace Drupal\memcache_admin\Controller; use Drupal\Component\Datetime\Time; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Datetime\DateFormatterInterface; use Drupal\Core\Link; use Drupal\Core\Messenger\MessengerTrait; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\Url; use Drupal\memcache\Driver\MemcacheDriverFactory; use Drupal\memcache_admin\Event\MemcacheStatsEvent; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventDispatcher; /** * Memcache Statistics. Loading @@ -17,6 +22,64 @@ class MemcacheStatisticsController extends ControllerBase { use MessengerTrait; use StringTranslationTrait; /** * Memcache Driver Factory. * * @var \Drupal\memcache\Driver\MemcacheDriverFactory */ protected $memcacheDriverFactory; /** * Event Dispatcher Service. * * @var \Symfony\Component\EventDispatcher\EventDispatcher */ protected $dispatcher; /** * Core Date Formatter Service. * * @var \Drupal\Core\Datetime\DateFormatterInterface */ protected $dateFormatter; /** * Core DateTime Service. * * @var \Drupal\Component\Datetime\Time */ protected $time; /** * ModalFormContactController constructor. * * @param \Drupal\Core\Form\FormBuilder $form_builder * The form builder. */ public function __construct(MemcacheDriverFactory $memcacheDriverFactory, EventDispatcher $dispatcher, DateFormatterInterface $dateFormatter, Time $time) { $this->memcacheDriverFactory = $memcacheDriverFactory; $this->dispatcher = $dispatcher; $this->dateFormatter = $dateFormatter; $this->time = $time; } /** * {@inheritdoc} * * @param \Symfony\Component\DependencyInjection\ContainerInterface $container * The Drupal service container. * * @return static */ public static function create(ContainerInterface $container) { return new static( $container->get('memcache.factory'), $container->get('event_dispatcher'), $container->get('date.formatter'), $container->get('datetime.time'), ); } /** * Callback for the Memcache Stats page. * Loading @@ -29,14 +92,13 @@ class MemcacheStatisticsController extends ControllerBase { public function statsTable($bin = 'default') { $bin = $this->getBinMapping($bin); /** @var $memcache \Drupal\memcache\DrupalMemcacheInterface */ $memcache = \Drupal::service('memcache.factory')->get($bin, TRUE); $memcache = $this->memcacheDriverFactory->get($bin, TRUE); // Instantiate our event. $event = new MemcacheStatsEvent($memcache, $bin); // Get the event_dispatcher service and dispatch the event. $event_dispatcher = \Drupal::service('event_dispatcher'); $event_dispatcher->dispatch(MemcacheStatsEvent::BUILD_MEMCACHE_STATS, $event); $this->dispatcher->dispatch($event, MemcacheStatsEvent::BUILD_MEMCACHE_STATS); // Report the PHP Memcache(d) driver version. if ($memcache->getMemcache() instanceof \Memcached) { Loading @@ -47,8 +109,7 @@ class MemcacheStatisticsController extends ControllerBase { } // Get the event_dispatcher service and dispatch the event. $event_dispatcher = \Drupal::service('event_dispatcher'); $event_dispatcher->dispatch(MemcacheStatsEvent::REPORT_MEMCACHE_STATS, $event); $this->dispatcher->dispatch($event, MemcacheStatsEvent::REPORT_MEMCACHE_STATS); $output = ['#markup' => '<p>' . $raw_stats['driver_version']]; $output[] = $this->statsTablesOutput($bin, $event->getServers(), $event->getReport()); Loading @@ -74,7 +135,7 @@ class MemcacheStatisticsController extends ControllerBase { $server = str_replace('!', '/', $server); $slab = \Drupal::routeMatch()->getParameter('slab'); $memcache = \Drupal::service('memcache.factory')->get($cluster, TRUE); $memcache = $this->memcacheDriverFactory->get($cluster, TRUE); if ($type == 'slabs' && !empty($slab)) { $stats = $memcache->stats($cluster, $slab, FALSE); } Loading Loading @@ -115,7 +176,7 @@ class MemcacheStatisticsController extends ControllerBase { * Helper function, reverse map the memcache_bins variable. */ private function binMapping($bin = 'cache') { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bins = array_flip($memcache_bins); Loading Loading @@ -168,7 +229,7 @@ class MemcacheStatisticsController extends ControllerBase { * Generates render array for output. */ private function statsTablesOutput($bin, $servers, $stats) { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $links = []; Loading Loading @@ -220,7 +281,7 @@ class MemcacheStatisticsController extends ControllerBase { private function statsTablesRawOutput($cluster, $server, $stats, $type) { $user = \Drupal::currentUser(); $current_type = isset($type) ? $type : 'default'; $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bin = isset($memcache_bins[$cluster]) ? $memcache_bins[$cluster] : 'default'; $slab = \Drupal::routeMatch()->getParameter('slab'); Loading Loading @@ -293,7 +354,7 @@ class MemcacheStatisticsController extends ControllerBase { $v = $this->t('infinite'); } else { $v = $this->t('in @time', ['@time' => \Drupal::service('date.formatter')->formatInterval($v - \Drupal::time()->getRequestTime())]); $v = $this->t('in @time', ['@time' => $this->dateFormatter->formatInterval($v - $this->time->getRequestTime())]); } } $build['table'][$row]['value'][$subrow] = [ Loading @@ -316,7 +377,7 @@ class MemcacheStatisticsController extends ControllerBase { * Helper function, reverse map the memcache_bins variable. */ protected function getBinMapping($bin = 'cache') { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bins = array_flip($memcache_bins); Loading Loading
README.txt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ the 7.x-1.x version of this module! - One of the two PECL memcache packages: - http://pecl.php.net/package/memcache (recommended) - http://pecl.php.net/package/memcached - Using the submodule, memcache_admin, requires Drupal 9.1 or later. For more detailed instructions on installing a memcached daemon or either of the memcache PECL extensions, please see the documentation online at Loading
memcache.info.yml +1 −1 Original line number Diff line number Diff line Loading @@ -2,4 +2,4 @@ name: Memcache description: 'High performance integration with memcache.' type: module package: 'Performance and scalability' core_version_requirement: ^8.9 || ^9 core_version_requirement: '^9.1 || ^10'
memcache.services.yml +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ services: arguments: ['@memcache.factory', 'memcache_bin_timestamps', 0.001] cache.backend.memcache: class: Drupal\memcache\MemcacheBackendFactory arguments: ['@memcache.factory', '@cache_tags.invalidator.checksum', '@memcache.timestamp.invalidator.bin'] arguments: ['@memcache.factory', '@cache_tags.invalidator.checksum', '@memcache.timestamp.invalidator.bin', '@datetime.time'] memcache.lock.factory: class: Drupal\memcache\Lock\MemcacheLockFactory arguments: ['@memcache.factory']
memcache_admin/memcache_admin.info.yml +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ name: Memcache Admin description: Adds a User Interface to monitor the Memcache for this site. package: Performance and scalability type: module core_version_requirement: ^8.9 || ^9 core_version_requirement: '^9.1 || ^10' configure: memcache_admin.settings Loading
memcache_admin/src/Controller/MemcacheStatisticsController.php +72 −11 Original line number Diff line number Diff line Loading @@ -2,12 +2,17 @@ namespace Drupal\memcache_admin\Controller; use Drupal\Component\Datetime\Time; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Datetime\DateFormatterInterface; use Drupal\Core\Link; use Drupal\Core\Messenger\MessengerTrait; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\Url; use Drupal\memcache\Driver\MemcacheDriverFactory; use Drupal\memcache_admin\Event\MemcacheStatsEvent; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventDispatcher; /** * Memcache Statistics. Loading @@ -17,6 +22,64 @@ class MemcacheStatisticsController extends ControllerBase { use MessengerTrait; use StringTranslationTrait; /** * Memcache Driver Factory. * * @var \Drupal\memcache\Driver\MemcacheDriverFactory */ protected $memcacheDriverFactory; /** * Event Dispatcher Service. * * @var \Symfony\Component\EventDispatcher\EventDispatcher */ protected $dispatcher; /** * Core Date Formatter Service. * * @var \Drupal\Core\Datetime\DateFormatterInterface */ protected $dateFormatter; /** * Core DateTime Service. * * @var \Drupal\Component\Datetime\Time */ protected $time; /** * ModalFormContactController constructor. * * @param \Drupal\Core\Form\FormBuilder $form_builder * The form builder. */ public function __construct(MemcacheDriverFactory $memcacheDriverFactory, EventDispatcher $dispatcher, DateFormatterInterface $dateFormatter, Time $time) { $this->memcacheDriverFactory = $memcacheDriverFactory; $this->dispatcher = $dispatcher; $this->dateFormatter = $dateFormatter; $this->time = $time; } /** * {@inheritdoc} * * @param \Symfony\Component\DependencyInjection\ContainerInterface $container * The Drupal service container. * * @return static */ public static function create(ContainerInterface $container) { return new static( $container->get('memcache.factory'), $container->get('event_dispatcher'), $container->get('date.formatter'), $container->get('datetime.time'), ); } /** * Callback for the Memcache Stats page. * Loading @@ -29,14 +92,13 @@ class MemcacheStatisticsController extends ControllerBase { public function statsTable($bin = 'default') { $bin = $this->getBinMapping($bin); /** @var $memcache \Drupal\memcache\DrupalMemcacheInterface */ $memcache = \Drupal::service('memcache.factory')->get($bin, TRUE); $memcache = $this->memcacheDriverFactory->get($bin, TRUE); // Instantiate our event. $event = new MemcacheStatsEvent($memcache, $bin); // Get the event_dispatcher service and dispatch the event. $event_dispatcher = \Drupal::service('event_dispatcher'); $event_dispatcher->dispatch(MemcacheStatsEvent::BUILD_MEMCACHE_STATS, $event); $this->dispatcher->dispatch($event, MemcacheStatsEvent::BUILD_MEMCACHE_STATS); // Report the PHP Memcache(d) driver version. if ($memcache->getMemcache() instanceof \Memcached) { Loading @@ -47,8 +109,7 @@ class MemcacheStatisticsController extends ControllerBase { } // Get the event_dispatcher service and dispatch the event. $event_dispatcher = \Drupal::service('event_dispatcher'); $event_dispatcher->dispatch(MemcacheStatsEvent::REPORT_MEMCACHE_STATS, $event); $this->dispatcher->dispatch($event, MemcacheStatsEvent::REPORT_MEMCACHE_STATS); $output = ['#markup' => '<p>' . $raw_stats['driver_version']]; $output[] = $this->statsTablesOutput($bin, $event->getServers(), $event->getReport()); Loading @@ -74,7 +135,7 @@ class MemcacheStatisticsController extends ControllerBase { $server = str_replace('!', '/', $server); $slab = \Drupal::routeMatch()->getParameter('slab'); $memcache = \Drupal::service('memcache.factory')->get($cluster, TRUE); $memcache = $this->memcacheDriverFactory->get($cluster, TRUE); if ($type == 'slabs' && !empty($slab)) { $stats = $memcache->stats($cluster, $slab, FALSE); } Loading Loading @@ -115,7 +176,7 @@ class MemcacheStatisticsController extends ControllerBase { * Helper function, reverse map the memcache_bins variable. */ private function binMapping($bin = 'cache') { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bins = array_flip($memcache_bins); Loading Loading @@ -168,7 +229,7 @@ class MemcacheStatisticsController extends ControllerBase { * Generates render array for output. */ private function statsTablesOutput($bin, $servers, $stats) { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $links = []; Loading Loading @@ -220,7 +281,7 @@ class MemcacheStatisticsController extends ControllerBase { private function statsTablesRawOutput($cluster, $server, $stats, $type) { $user = \Drupal::currentUser(); $current_type = isset($type) ? $type : 'default'; $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bin = isset($memcache_bins[$cluster]) ? $memcache_bins[$cluster] : 'default'; $slab = \Drupal::routeMatch()->getParameter('slab'); Loading Loading @@ -293,7 +354,7 @@ class MemcacheStatisticsController extends ControllerBase { $v = $this->t('infinite'); } else { $v = $this->t('in @time', ['@time' => \Drupal::service('date.formatter')->formatInterval($v - \Drupal::time()->getRequestTime())]); $v = $this->t('in @time', ['@time' => $this->dateFormatter->formatInterval($v - $this->time->getRequestTime())]); } } $build['table'][$row]['value'][$subrow] = [ Loading @@ -316,7 +377,7 @@ class MemcacheStatisticsController extends ControllerBase { * Helper function, reverse map the memcache_bins variable. */ protected function getBinMapping($bin = 'cache') { $memcache = \Drupal::service('memcache.factory')->get(NULL, TRUE); $memcache = $this->memcacheDriverFactory->get(NULL, TRUE); $memcache_bins = $memcache->getBins(); $bins = array_flip($memcache_bins); Loading