Install
Works with Drupal: ^10.3 || ^11 || ^12Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
214.39 KB
MD5: f6dd17f5b5191437fc6f5e29980d4eee
SHA-1: 2e899dba37045476aa71cca28840898df9b34fe2
SHA-256: 24a3b8ba80ae243a7b6f33b87bd1713140b5291ff8900e3584fa81d65f3ab7b7
Download zip
466.08 KB
MD5: cf29fd59a3ed690ef179931d79b1a6e4
SHA-1: 73f7b0030bd0ab973f9949478e232c5e2eba6009
SHA-256: 4f7e5b8f6dabf39c5296464d3b40a972ec3a7cf253b0b2bea9ad4e8936d1fbfb
Release notes
Purge 8.x-3.8 adds Drupal 12 support, a new Path alias queuer submodule, and a number of fixes to diagnostics, the queue and the coretags queuer.
Upgrade notes
- Core requirement: Purge now requires Drupal
^10.3 || ^11 || ^12. Sites on Drupal 9.5 or Drupal 10.0–10.2 must stay on 8.x-3.7. - Run database updates (
drush updb). They move the queue statistics from state to key-value storage and rebuild the container for the new service aliases. - Diagnostic checks bound to a purger now block only that purger instead of all purging. Global checks still block everything.
- Cache tags containing whitespace are now rejected. The coretags queuer and the queue skip and log them; creating a tag invalidation with whitespace directly throws
InvalidExpressionException.
New features
- New Path alias queuer submodule: queues URL invalidations when path aliases are created, changed or deleted.
- Invalidate a purger's cache from the Purge UI, and a Purge link in the admin menu.
drush sql:sanitizeempties the purge queue, andp:queue-workhas a--onelineoption.- Purge services are aliased by their interfaces for autowiring, and
DatabaseQueuecan be extended with non-integer IDs. - Purge's own plugins use PHP attributes. Annotation-based plugins in other modules keep working.
Deprecations (for developers)
- Passing the
stateservice toStatsTracker::__construct(), theStatsTracker::$stateproperty, and subclasses that do not call the parent constructor are deprecated in 8.x-3.8 and removed in 4.0.0. See #3635585. - Calling
PurgeBlockForm::__construct()without the$module_handlerargument is deprecated in 8.x-3.8 and required in 4.0.0. See #3523147.
Contributors (16)
acbramley, ajits, darthsteven, dpi, ericgsmith, guillaumeg, japerry, kimpepper, kyberman, leslieg, lucaspretti, malcomio, mlncn, mstrelan, plach, rp7
Changelog
Issues: 25 issues resolved.
Changes since 8.x-3.7 (compare):
Bug
- #3612380 by japerry: DependencySerializationTrait does not support private properties
- #3264141 by japerry: Don't run the LateRunTimeProcessor when performing a config import.
- #3436188 by rp7: Document that coretags blacklist entries are substring matches
- #3533998 by darthsteven, japerry: Reject cache tags that contain whitespace
- #3273264 by japerry: Empty the purge queue during drush sql:sanitize
- #3626509 by lucaspretti: Call to a member function getLabel() on null after a config import uninstalls a purger module
Feature
- #3208832 by japerry: Add a Path Alias Queuer that allows sites to purge URLs when content is created/edited/deleted.
- #3263285 by acbramley, japerry: Add support for oneline format output for queue command
- #3418683 by japerry, malcomio: Include link to purge config page in admin menu
- #3459162 by japerry, mstrelan: Loosen the requirements check for TTL below one month
- #2853613 by japerry: Invalidate a purger's cache from UI
- #3062616 by japerry: Only block the purgers a failing diagnostic check is bound to
- #3523147 by guillaumeg, japerry: Allow adding extra expressions to the Purge UI block
Task
- #3556305 by japerry, kimpepper: Convert plugin annotations to PHP 8 attributes
- #3139376 by japerry: Replace assertions involving isObject
- #3474929 by leslieg: Add project browser logo for Purge.
- #3590026 by japerry: Drupal 12 Compatibility.
- #3591945 by japerry, mlncn: Make minor updates and fixes to the README
- #3479366 by japerry: Improve the doc and help of p:invalidate
- #3447548 by dpi, japerry: Alias purge services by their interfaces for autowiring
- #3475680 by ericgsmith, japerry: Allow DatabaseQueue to be extended with non-integer IDs
- #3482222 by ajits, japerry: Do not purge on a non-live workspace
- #3635585 by japerry, plach: Store the queue statistics in key-value storage instead of state
- #3635585 by japerry, plach: follow-up: Add return types to StatsTrackerState::get() and getMultiple()
Support
- #3038778 by japerry: Remove the non-existent ajaxui processor from the README
- #3132514 by kyberman: Document and test the purge.dangerous override for the 100k queue limit
Misc
- Replace assertions involving calls to is_array() with assertIsArray()/assertIsNotArray()
- Linting the LateRuntimeProcessorTest
- Update composer.json to standardize authors section.
- Fix the next minor and next major test jobs