Soma Posted April 15, 2016 Share Posted April 15, 2016 ClearCacheAdmin Module Since there's so many asking how to clear cache. Here comes a helper module that let's you clear caches directly from the admin menu. Additionally it has its own admin page that's a collection of the various caches available in ProcessWire in one place. See some infos and clear them. WireCache (using $cache) caches in the DB and there no way to clear it from the admin. Now you can delete the entries individually or all in one go. Supports following cache types: - Template "Page" Cache (disk file cache) - MarkupCache module (file cache) - WireCache (DB) - Other files and directories found in assets/cache/ path Wanted to do this for a long time. It was also great fun to do it and give something to the community to also learn something. For now it's on github only. Requires ProcessWire 2.6+. https://github.com/somatonic/ClearCacheAdmin 25 Link to comment Share on other sites More sharing options...
szabesz Posted April 15, 2016 Share Posted April 15, 2016 Thanks a lot! Just one question: how about cache/FileCompiler too? Or better yet, any number of custom paths added by the superuser? Maybe I'm asking too much. 1 Link to comment Share on other sites More sharing options...
Macrura Posted April 15, 2016 Share Posted April 15, 2016 Whoah, this is going to be really useful, especially that wirecache cleaner(!) 1 Link to comment Share on other sites More sharing options...
Soma Posted April 15, 2016 Author Share Posted April 15, 2016 Thanks a lot! Just one question: how about cache/FileCompiler too? Or better yet, any number of custom paths added by the superuser? Maybe I'm asking too much. Not at all. Yeah why not. But I originally just wanted to be able to trigger the various caches by simply using their own API. I wasn't doing any real operations or deletions just delegation. I now added support for "Other files and directories in the site/assets/cache/ dir". For now they will now show up in menu and on admin page and you can delete them recursively. Version 0.0.2 is commited. 7 Link to comment Share on other sites More sharing options...
szabesz Posted April 16, 2016 Share Posted April 16, 2016 This is more that I could dream of Thank you very much! Link to comment Share on other sites More sharing options...
szabesz Posted April 16, 2016 Share Posted April 16, 2016 Hi Soma, Moved the folder "ClearCacheAdmin" into the modules dir. Clicked Modules > Refresh, got this: Compile Error: Arrays are not allowed in class constants FIle: .../modules/ClearCacheAdmin/ClearCacheAdmin.module.php:11 class ClearCacheAdmin extends \ProcessWire\Process{ const exludeCacheDirFiles = array("Page", "MarkupHTMLPurifier", "MarkupCache"); Solution? Thanks in advance. Link to comment Share on other sites More sharing options...
tpr Posted April 16, 2016 Share Posted April 16, 2016 I guess too low PHP version. 1 Link to comment Share on other sites More sharing options...
BitPoet Posted April 16, 2016 Share Posted April 16, 2016 Yes, arrays as class constants are only possible from PHP 5.6.0 onwards. 1 Link to comment Share on other sites More sharing options...
Soma Posted April 16, 2016 Author Share Posted April 16, 2016 Thanks for the report. I commited an update that fixes this. I hadn't thought about it and was runnning php 7 3 Link to comment Share on other sites More sharing options...
szabesz Posted April 16, 2016 Share Posted April 16, 2016 @Soma: did you really commit that change? Seems the same gives the same error. Am I missing something? Link to comment Share on other sites More sharing options...
Soma Posted April 16, 2016 Author Share Posted April 16, 2016 Yeah https://github.com/somatonic/ClearCacheAdmin/commit/88da90563991b7e156d0738143be7b17dc43249b I'm running php 5.3 and it works. 2 Link to comment Share on other sites More sharing options...
szabesz Posted April 17, 2016 Share Posted April 17, 2016 That's black magic It must have been some sort of cache issue, I suppose. Works fine after updating, thanks once more! Link to comment Share on other sites More sharing options...
Soma Posted April 18, 2016 Author Share Posted April 18, 2016 New update to v0.0.5. Lowered minimum required PW version. I just tested it on a install with PW 2.6.10 and fixed some small issues. Added support for WireCache entries using a selector as expires instead of a date. 4 Link to comment Share on other sites More sharing options...
David Karich Posted April 25, 2016 Share Posted April 25, 2016 Damn it. You were faster. I had the same module on my to-do. Thanks for the module. Very helpful! I have three more points as a feature on my idea list: empty the ProCache and AIOM+ cache when they are installed. Remove all image variations and a short-cut to clear everything at once. 3 Link to comment Share on other sites More sharing options...
horst Posted April 29, 2016 Share Posted April 29, 2016 empty the ProCache and AIOM+ cache when they are installed. Remove all image variations and a short-cut to clear everything at once. +1 for ProCache +1 for AIOM+ But ALL imageVariations?? Ugh! For imagevariations, I believe, a per-page solution would be much better. Link to comment Share on other sites More sharing options...
teppo Posted April 30, 2016 Share Posted April 30, 2016 But ALL imageVariations?? Ugh! For imagevariations, I believe, a per-page solution would be much better. Depends a lot on the use case. I'm currently working on a site with roughly 10.000 pages, and because of some recent changes, most of those pages have a whole bunch of unused image variations. Per-page solution wouldn't do me much good here Generally speaking I'd say that a "clear all imagevariations" would be more useful than a per-page option. 3 Link to comment Share on other sites More sharing options...
tpr Posted April 30, 2016 Share Posted April 30, 2016 In some WP plugins they solve such situations by allowing batch deletion of 50 or 100 images, and you can continue the process if there are images left. 1 Link to comment Share on other sites More sharing options...
horst Posted April 30, 2016 Share Posted April 30, 2016 Depends a lot on the use case. I'm currently working on a site with roughly 10.000 pages, and because of some recent changes, most of those pages have a whole bunch of unused image variations. Per-page solution wouldn't do me much good here Generally speaking I'd say that a "clear all imagevariations" would be more useful than a per-page option. In some WP plugins they solve such situations by allowing batch deletion of 50 or 100 images, and you can continue the process if there are images left. Best solution would be, to be able to only remove all unused image variations. Also, the deletion isn't the part what can do much harm to a site or server, I believe, but the recreation of the new variations, especially with (much) multiple requests for pages at the same time. If a page contains 100 images and each image need to rebuild 5 variations, ... hmm, ... Link to comment Share on other sites More sharing options...
Peter Knight Posted May 1, 2016 Share Posted May 1, 2016 Soma This Module just helped me with my Form / PostMark problem https://processwire.com/talk/topic/12322-mandrill-upcoming-changes/page-2#entry119229 2 Link to comment Share on other sites More sharing options...
teppo Posted May 3, 2016 Share Posted May 3, 2016 Best solution would be, to be able to only remove all unused image variations. Also, the deletion isn't the part what can do much harm to a site or server, I believe, but the recreation of the new variations, especially with (much) multiple requests for pages at the same time. If a page contains 100 images and each image need to rebuild 5 variations, ... hmm, ... Again it boils down to differences in use cases. I don't think any of our sites have a single page with even close to a hundred images, let alone that amount of variations. I would assume that this requires some tricks either way; from my point of view variations are temporary data, so one should always be prepared for them going away, and generating hundreds of variation images at one go sounds like an extremely resource-intensive task. If I had this kind of need, I'd probably try to figure out some method of creating the variations as a background task before the page (or images without variations) can become publicly viewable Anyway, I'm not saying that this isn't a feasible situation, just that it's something none of our sites have. For us it's common to have hundreds or thousands of pages with a few images at tops, in which case a method of cleaning out all variations would be quite handy. On the other hand for use cases like the one you've mentioned above a page-by-page solution would make more sense. Perhaps two separate solutions would make most sense? Not sure if clearing unused variations is really feasible, considering how they're requested, but of course that would be nice if it was feasible.. 2 Link to comment Share on other sites More sharing options...
tpr Posted May 3, 2016 Share Posted May 3, 2016 When removing all image variations, is the removal of CKEditor images safe now? I occassionally use horst's "PageimageRemoveVariations" module that comes with a big warning: This module let you clear the images cache sitewide, but big WARNING: it also removes ImageVariations from RTE-Fields! 1 Link to comment Share on other sites More sharing options...
horst Posted May 3, 2016 Share Posted May 3, 2016 (edited) @teppo: we definetly need two versions. I think, to clear all at once is the more common one and should have priority. A per/page solution may come later. @tpr: that's the question. I don't have experiences with RTE's and images. I know that Ryan has done something to be able to recreate variations in RTE's. But I don't know when and in what extend. Think of these use cases: variation from an imagefield of the same page variation from an imagefield of another page The first one can be covered, if I remember right on what I have read from Ryan (don't know where I have read it) The latter one I don't know. We need to test thouroughly, I think, or ask Ryan what is currently covered and what not. There are three different types: original images image variations orphaned imagefiles Only the variations belong to the Cache. Edited May 3, 2016 by horst 1 Link to comment Share on other sites More sharing options...
Soma Posted May 3, 2016 Author Share Posted May 3, 2016 I'm planning to support ProCache and AIOM. But not sure I want to mess at all with image variations. I also don't see that as a cache and think the developer should take care of that depending on the project. 3 Link to comment Share on other sites More sharing options...
horst Posted May 3, 2016 Share Posted May 3, 2016 I'm planning to support ProCache and AIOM. But not sure I want to mess at all with image variations. I also don't see that as a cache and think the developer should take care of that depending on the project. Good news! (ProCache and AIOM) In regard of the image variations, maybe you can provide a hook, so that others are able to add a functionality? 3 Link to comment Share on other sites More sharing options...
adrian Posted May 4, 2016 Share Posted May 4, 2016 Hi Soma, Just taking a first look at this as I think it could be quite useful for a particular purpose. I have a wireCache that caches a query that takes several minutes to run. I have it set to never expire - the content driving this query only gets changed once a year, but when it is being changed, it takes many edits to many different pages, so I don't want the cache to be cleared by any rules. I just want to clear it once after all the data has been changed. I thought your module might be a nice way to do this, rather than manually deleting the row from the caches table, but you have this: As found in the wire cache DB table except those that never expire. Is there any reason you are not listing those caches that never expire? I assume it is to protect the content? Could this be optional? I may end up going with a different approach because I think this module is too complex for client use anyway - of course awesome for devs which I assume is your target anyway. Still I thought I would ask because it still might be safer for me to be the one that clears that cache when it is time and your module would be a simple way to do this. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now