Being involved with eZ Publish at a partner level I fully endorse and promote the system and believe it is by far one of the best enterprise content management frameworks available today.
During the recent release of version 3.10 I had a number of sites I was about to begin working on, this site included, so I decided to take an early-adopter stance and deploy 3.10 for all these sites rather than 3.9. In doing so I have found that cache clearing mechanism is broken.
This affects the admin interface clean up, forced cleanup through the CLI ezcache.php, as well as standard clean ups such as modifying an object.
This bug is a little dangerous because the workaround was to delete the contents of your cache folder manually. Most sysadmins would do this via the CLI and introduce the risk of mistyping the directive and erasing more than they should.
Using the CLI ezcache.php –clear-all –purge worked in some cases to clean up modified objects such as the admin treemenu, but not to refresh all caches.
Bug ID: #011644
View this bug at http://issues.ez.no/IssueView.php?Id=11644
This bug has sinced been rectified by the eZ Crew and pushed into svn as patches for 3.10.1 and 3.9.5. Unfortunately these releases may be weeks away as yet, which leaves current 3.10 users a little out of luck.
HOWTO: Patch 3.10 caching issue
There is only one file to be patched to fix this issue, its location is:
kernel/classes/ezcache.php
You need to modify this file in 4 separate locations:
Within: function clearItem() at Line 345
Find:
$expiryHandler = eZExpiryHandler::instance();
Replace:
$expiryHandler =& eZExpiryHandler::instance();
The exact same change must be made 3 more times at:
Within: function clearImageAlias() at Line 418
Within: function clearContentTreeMenu() at Line 434
Within: function clearTemplateBlockCache() at Line 447
HOWTO: Patch 3.9.4 caching issue
There is only one file to be patched to fix this issue, its location is:
kernel/classes/ezcache.php
You need to modify this file in 4 separate locations:
Within: function clearImageAlias() at Line 370
Find:
$expiryHandler = eZExpiryHandler::instance();
Replace:
$expiryHandler =& eZExpiryHandler::instance();
Disclaimer: I do not recommend nor endorse the modification of kernel files and provide the above instructions for you to attempt at your own risk. I accept no responsibility for whatever stupid action you take that breaks your system.
If anyone would like this and other 3.10 issues patched I am happy to do so for a small maintenance fee. Contact me via the contact form on this site and we can arrange a suitable time