[1.x] Page Cache Vary

Created on 26 October 2024, 2 months ago

Extend Drupal's Internal Page Cache by allowing variation of cache based on HTTP header, as per the Vary specification.

There is a cache entry for every variation of a given URL, and a cache entry for every URL (containing the list of variations for the given URL, or none if there is no variation).

For the same variation the cache will hit, for a new variation a new response will be stored in cache.

The Vary header is exposed in the response (as per the specification).

It uses the Cache Context (since it's the same feature), and allow to extend a Page Context by adding an interface (VaryCacheContextInterface) to be able to provide a list of headers to vary the response by.

Page Cache Vary's project page. โ†’

๐Ÿ“Œ Task
Status

Needs review

Component

module

Created by

๐Ÿ‡จ๐Ÿ‡ญSwitzerland Elendev

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @Elendev
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia vishal.kadam Mumbai

    Thank you for applying!

    Please read Review process for security advisory coverage: What to expect โ†’ for more details and Security advisory coverage application checklist โ†’ to understand what reviewers look for. Tips for ensuring a smooth review โ†’ gives some hints for a smoother review.

    The important notes are the following.

    • If you have not done it yet, you should run phpcs --standard=Drupal,DrupalPractice on the project, which alone fixes most of what reviewers would report.
    • For the time this application is open, only your commits are allowed.
    • The purpose of this application is giving you a new drupal.org role that allows you to opt projects into security advisory coverage, either projects you already created, or projects you will create. The project status won't be changed by this application and no other user will be able to opt projects into security advisory policy.
    • We only accept an application per user. If you change your mind about the project to use for this application, or it is necessary to use a different project for the application, please update the issue summary with the link to the correct project and the issue title with the project name and the branch to review.

    To the reviewers

    Please read How to review security advisory coverage applications โ†’ , Application workflow โ†’ , What to cover in an application review โ†’ , and Tools to use for reviews โ†’ .

    The important notes are the following.

    • It is preferable to wait for a Code Review Administrator before commenting on newly created applications. Code Review Administrators will do some preliminary checks that are necessary before any change on the project files is suggested.
    • Reviewers should show the output of a CLI tool โ†’ only once per application.
    • It may be best to have the applicant fix things before further review.

    For new reviewers, I would also suggest to first read In which way the issue queue for coverage applications is different from other project queues โ†’ .

  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia vishal.kadam Mumbai
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia jaseerkinangattil Bangalore

    Hi,

    Please review the below erros and warnings

    
    FILE: /Users/jaseer/dockers/lamp/www/page_cache_vary/src/PageCacheVaryServiceProvider.php
    -----------------------------------------------------------------------------------------
    FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
    -----------------------------------------------------------------------------------------
     8 | WARNING | [x] Unused use statement
    -----------------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    -----------------------------------------------------------------------------------------
    
    
    FILE: /Users/jaseer/dockers/lamp/www/page_cache_vary/src/VaryCacheContextCleanPass.php
    ------------------------------------------------------------------------------------------
    FOUND 2 ERRORS AND 4 WARNINGS AFFECTING 6 LINES
    ------------------------------------------------------------------------------------------
      9 | WARNING | [ ] Line exceeds 80 characters; contains 85 characters
     11 | ERROR   | [x] Doc comment star missing
     13 | ERROR   | [x] There must be exactly one blank line before the tags in a doc comment
     21 | WARNING | [ ] Line exceeds 80 characters; contains 116 characters
     22 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
     23 | WARNING | [ ] Line exceeds 80 characters; contains 108 characters
    ------------------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    ------------------------------------------------------------------------------------------
    
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia rushiraval

    1.0 Wrong Branch name

    main is a wrong name for a branch. Release branch names always end with the literal .x as described in Release branches โ†’ .

    2.0 Fix phpcs issue

    phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,ymlpage_cache_vary/
    
    FILE:page_cache_vary/src/VaryCacheContextCleanPass.php
    ------------------------------------------------------------------------------------------
    FOUND 2 ERRORS AND 4 WARNINGS AFFECTING 6 LINES
    ------------------------------------------------------------------------------------------
      9 | WARNING | [ ] Line exceeds 80 characters; contains 85 characters
     11 | ERROR   | [x] Doc comment star missing
     13 | ERROR   | [x] There must be exactly one blank line before the tags in a doc comment
     21 | WARNING | [ ] Line exceeds 80 characters; contains 116 characters
     22 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
     23 | WARNING | [ ] Line exceeds 80 characters; contains 108 characters
    ------------------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    ------------------------------------------------------------------------------------------
    
    
    FILE:page_cache_vary/src/StackMiddleware/PageCacheVary.php
    --------------------------------------------------------------------------------------------------------------------------------------
    FOUND 1 ERROR AFFECTING 1 LINE
    --------------------------------------------------------------------------------------------------------------------------------------
     9 | ERROR | [x] Use statements should be sorted alphabetically. The first wrong one is Drupal\Core\Cache\CacheableResponseInterface.
    --------------------------------------------------------------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    --------------------------------------------------------------------------------------------------------------------------------------
    
    
    FILE:page_cache_vary/src/PageCacheVaryServiceProvider.php
    ------------------------------------------------------------------------------
    FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
    ------------------------------------------------------------------------------
     8 | WARNING | [x] Unused use statement
    ------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    ------------------------------------------------------------------------------
    
    
    FILE:page_cache_vary/tests/Functional/PageCacheVaryTest.php
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    FOUND 1 ERROR AFFECTING 1 LINE
    -------------------------------------------------------------------------------------------------------------------------------------------------------
     7 | ERROR | [x] Use statements should be sorted alphabetically. The first wrong one is Drupal\page_cache_vary_test\Cache\Context\CountryCacheContext.
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Time: 63ms; Memory: 10MB
    
    
Production build 0.71.5 2024