Update to drupal-org-drupal 8.0.0-rc2. For more information, see https://www.drupal.org/node/2598668
This commit is contained in:
parent
f32e58e4b1
commit
8e18df8c36
3062 changed files with 15044 additions and 172506 deletions
|
@ -12,9 +12,7 @@ use Drupal\Core\Language\LanguageInterface;
|
|||
use Drupal\Core\Language\LanguageManagerInterface;
|
||||
use Drupal\Core\Path\CurrentPathStack;
|
||||
use Drupal\Core\Path\PathMatcherInterface;
|
||||
use Drupal\Core\Routing\RouteMatchInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\Core\Url;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
|
|
|
@ -11,7 +11,6 @@ use Drupal\Core\Cache\CacheableMetadata;
|
|||
use Drupal\Core\Cache\CacheableResponseInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ use Drupal\Core\Render\AttachmentsInterface;
|
|||
use Drupal\Core\Render\BubbleableMetadata;
|
||||
use Drupal\Core\Render\RenderContext;
|
||||
use Drupal\Core\Render\RendererInterface;
|
||||
use Drupal\Core\Routing\RouteMatchInterface;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
|
|
|
@ -48,12 +48,14 @@ class EntityRouteProviderSubscriber implements EventSubscriberInterface {
|
|||
foreach ($this->entityManager->getRouteProviders($entity_type->id()) as $route_provider) {
|
||||
// Allow to both return an array of routes or a route collection,
|
||||
// like route_callbacks in the routing.yml file.
|
||||
|
||||
$routes = $route_provider->getRoutes($entity_type);
|
||||
if ($routes instanceof RouteCollection) {
|
||||
$route_collection->addCollection($routes);
|
||||
$routes = $routes->all();
|
||||
}
|
||||
elseif (is_array($routes)) {
|
||||
foreach ($routes as $route_name => $route) {
|
||||
foreach ($routes as $route_name => $route) {
|
||||
// Don't override existing routes.
|
||||
if (!$route_collection->get($route_name)) {
|
||||
$route_collection->add($route_name, $route);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,19 +10,15 @@ namespace Drupal\Core\EventSubscriber;
|
|||
use Drupal\Component\Datetime\DateTimePlus;
|
||||
use Drupal\Core\Cache\CacheableResponseInterface;
|
||||
use Drupal\Core\Cache\Context\CacheContextsManager;
|
||||
use Drupal\Core\Config\Config;
|
||||
use Drupal\Core\Config\ConfigFactoryInterface;
|
||||
use Drupal\Core\Language\LanguageManagerInterface;
|
||||
use Drupal\Core\PageCache\RequestPolicyInterface;
|
||||
use Drupal\Core\PageCache\ResponsePolicyInterface;
|
||||
use Drupal\Core\Site\Settings;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
|
||||
/**
|
||||
|
@ -65,6 +61,13 @@ class FinishResponseSubscriber implements EventSubscriberInterface {
|
|||
*/
|
||||
protected $cacheContexts;
|
||||
|
||||
/**
|
||||
* Whether to send cacheability headers for debugging purposes.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $debugCacheabilityHeaders = FALSE;
|
||||
|
||||
/**
|
||||
* Constructs a FinishResponseSubscriber object.
|
||||
*
|
||||
|
@ -78,13 +81,16 @@ class FinishResponseSubscriber implements EventSubscriberInterface {
|
|||
* A policy rule determining the cacheability of a response.
|
||||
* @param \Drupal\Core\Cache\Context\CacheContextsManager $cache_contexts_manager
|
||||
* The cache contexts manager service.
|
||||
* @param bool $http_response_debug_cacheability_headers
|
||||
* (optional) Whether to send cacheability headers for debugging purposes.
|
||||
*/
|
||||
public function __construct(LanguageManagerInterface $language_manager, ConfigFactoryInterface $config_factory, RequestPolicyInterface $request_policy, ResponsePolicyInterface $response_policy, CacheContextsManager $cache_contexts_manager) {
|
||||
public function __construct(LanguageManagerInterface $language_manager, ConfigFactoryInterface $config_factory, RequestPolicyInterface $request_policy, ResponsePolicyInterface $response_policy, CacheContextsManager $cache_contexts_manager, $http_response_debug_cacheability_headers = FALSE) {
|
||||
$this->languageManager = $language_manager;
|
||||
$this->config = $config_factory->get('system.performance');
|
||||
$this->requestPolicy = $request_policy;
|
||||
$this->responsePolicy = $response_policy;
|
||||
$this->cacheContextsManager = $cache_contexts_manager;
|
||||
$this->debugCacheabilityHeaders = $http_response_debug_cacheability_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -134,11 +140,13 @@ class FinishResponseSubscriber implements EventSubscriberInterface {
|
|||
return;
|
||||
}
|
||||
|
||||
// Expose the cache contexts and cache tags associated with this page in a
|
||||
// X-Drupal-Cache-Contexts and X-Drupal-Cache-Tags header respectively.
|
||||
$response_cacheability = $response->getCacheableMetadata();
|
||||
$response->headers->set('X-Drupal-Cache-Tags', implode(' ', $response_cacheability->getCacheTags()));
|
||||
$response->headers->set('X-Drupal-Cache-Contexts', implode(' ', $this->cacheContextsManager->optimizeTokens($response_cacheability->getCacheContexts())));
|
||||
if ($this->debugCacheabilityHeaders) {
|
||||
// Expose the cache contexts and cache tags associated with this page in a
|
||||
// X-Drupal-Cache-Contexts and X-Drupal-Cache-Tags header respectively.
|
||||
$response_cacheability = $response->getCacheableMetadata();
|
||||
$response->headers->set('X-Drupal-Cache-Tags', implode(' ', $response_cacheability->getCacheTags()));
|
||||
$response->headers->set('X-Drupal-Cache-Contexts', implode(' ', $this->cacheContextsManager->optimizeTokens($response_cacheability->getCacheContexts())));
|
||||
}
|
||||
|
||||
$is_cacheable = ($this->requestPolicy->check($request) === RequestPolicyInterface::ALLOW) && ($this->responsePolicy->check($response, $request) !== ResponsePolicyInterface::DENY);
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ abstract class HttpExceptionSubscriberBase implements EventSubscriberInterface {
|
|||
*
|
||||
* @return array
|
||||
* An indexed array of the format machine names that this subscriber will
|
||||
* attempt ot process,such as "html" or "json". Returning an empty array
|
||||
* attempt to process, such as "html" or "json". Returning an empty array
|
||||
* will apply to all formats.
|
||||
*
|
||||
* @see \Symfony\Component\HttpFoundation\Request
|
||||
|
|
|
@ -11,7 +11,6 @@ use Drupal\Core\State\StateInterface;
|
|||
use Drupal\Core\Routing\RouteBuildEvent;
|
||||
use Drupal\Core\Routing\RoutingEvents;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
|
||||
/**
|
||||
* Provides all available first bits of all route paths.
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\Core\EventSubscriber;
|
||||
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Drupal\Core\Cache\CacheableRedirectResponse;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
|
@ -39,7 +39,7 @@ class RedirectLeadingSlashesSubscriber implements EventSubscriberInterface {
|
|||
if ($qs) {
|
||||
$qs = '?' . $qs;
|
||||
}
|
||||
$event->setResponse(new RedirectResponse($request->getUriForPath($path) . $qs));
|
||||
$event->setResponse(new CacheableRedirectResponse($request->getUriForPath($path) . $qs));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ class RedirectResponseSubscriber implements EventSubscriberInterface {
|
|||
*/
|
||||
public function checkRedirectUrl(FilterResponseEvent $event) {
|
||||
$response = $event->getResponse();
|
||||
if ($response instanceOf RedirectResponse) {
|
||||
if ($response instanceof RedirectResponse) {
|
||||
$request = $event->getRequest();
|
||||
|
||||
// Let the 'destination' query parameter override the redirect target.
|
||||
|
@ -71,7 +71,7 @@ class RedirectResponseSubscriber implements EventSubscriberInterface {
|
|||
|
||||
// Regardless of whether the target is the original one or the overridden
|
||||
// destination, ensure that all redirects are safe.
|
||||
if (!($response instanceOf SecuredRedirectResponse)) {
|
||||
if (!($response instanceof SecuredRedirectResponse)) {
|
||||
try {
|
||||
// SecuredRedirectResponse is an abstract class that requires a
|
||||
// concrete implementation. Default to LocalRedirectResponse, which
|
||||
|
|
|
@ -7,11 +7,7 @@
|
|||
|
||||
namespace Drupal\Core\EventSubscriber;
|
||||
|
||||
use Drupal\Core\Cache\Cache;
|
||||
use Drupal\Core\Lock\LockBackendInterface;
|
||||
use Drupal\Core\Routing\RouteBuilderInterface;
|
||||
use Drupal\Core\Routing\RoutingEvents;
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpKernel\Event\PostResponseEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
|
|
Reference in a new issue