This issue is for the purpose of a more complete solution to #276615: If users goes to admin/build/themes and does not submit, anon users see cached pages with references to non-existent CSS. We should pursue a file flush mechanism that other modules can call and hook into. drupal_clear_file_caches() would be the standard way of flushing the files/js & files/css directories. Operate very similar to http://api.drupal.org/api/function/hook_flush_caches/7. Hook would be called via *_flush_file_caches(). Standard db page cache should be flushed when this is called as well since it will reference non existent css/js files.

Comments

EvanDonovan’s picture

Subscribing. Critical feature for Boost compatibility...

sun.core’s picture

Version: 7.x-dev » 8.x-dev
deviantintegral’s picture

I'm running into this problem where I want "clearing the cache" to include tables which aren't cache bins but are in fact "caches" for data stored in memcache. I'd also like to be able to clear objects cached to files (WSDL from web services) when the general cache is wiped, which can't currently be done.

Proposal:

  1. hook_flush_caches() should be renamed to hook_flush_cache_bins() to indicate that it's returning cache bins eligible to be emptied.
  2. hook_flush_cache_files() should be added to allow modules to return an array of file objects to purge.
  3. hook_flush_cache_execute() should be added to actually proceed with emptying the cache. This would allow modules to complete actions knowing that the cache is going to be emptied that may not fit into either cache bins or files.
deviantintegral’s picture

Status: Active » Needs review
StatusFileSize
new7.97 KB

Here's a patch that:

  • Adds the above hooks.
  • Moves hook_flush_caches() hook implementations to hook_flush_cache_execute() in the block and update modules.

This still needs tests for the new hooks.

Status: Needs review » Needs work

The last submitted patch, 484524.4-flush_cache_hooks.patch, failed testing.

deviantintegral’s picture

Status: Needs work » Needs review
StatusFileSize
new7.88 KB

Removed the pass-by-reference since I don't have a real use case for it yet and module_invoke_all() doesn't support it.

marvil07’s picture

Status: Needs review » Needs work

Patch does not apply anymore, I tried a simple rebase from the time it was done, but some of the lines were touched from June to now, so just changing the status.

I like the idea of those three hook names: less implicit stuff makes us clearer for new developers reading the code.

deviantintegral’s picture

Status: Needs work » Needs review
Issue tags: +Needs tests
StatusFileSize
new7.24 KB

Here's a rerolled patch, along with a bit of refactoring and hook renaming to match current conventions in cache hook names. Even if this passes, this still needs work to refactor drupal_clear_css_cache(), drupal_clear_js_cache(), and _drupal_flush_css_js() to use the new file flush hook.

Status: Needs review » Needs work
Issue tags: -Needs tests

The last submitted patch, 484524.8-flush_cache_hooks.patch, failed testing.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Issue summary: View changes
Status: Needs work » Postponed (maintainer needs more info)

Wonder if this is still a valid feature request after 11 years?

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

quietone’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)

Since there was no response to the query about two years ago, I am closing this issue.

If there is interest in this re-open the issue and add a comment. Or open a new issue and reference this one.