apigee_m10n-8.x-1.7/modules/apigee_m10n_teams/src/Cache/TeamCacheContext.php
modules/apigee_m10n_teams/src/Cache/TeamCacheContext.php
<?php /* * Copyright 2018 Google Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ namespace Drupal\apigee_m10n_teams\Cache; use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Cache\Context\CacheContextInterface; use Drupal\Core\Cache\Context\RequestStackCacheContextBase; use Drupal\apigee_edge_teams\Entity\TeamInterface; /** * Defines the TeamCacheContext service, for "per URL team" caching. * * Cache context ID: 'url.team'. */ class TeamCacheContext extends RequestStackCacheContextBase implements CacheContextInterface { /** * {@inheritdoc} */ public static function getLabel() { return t('Team'); } /** * {@inheritdoc} */ public function getContext() { $team = ($request = $this->requestStack->getCurrentRequest()) ? $request->get('team') : NULL; return (string) ($team instanceof TeamInterface ? $team->id() : $team); } /** * {@inheritdoc} */ public function getCacheableMetadata() { return new CacheableMetadata(); } }