Install
Works with Drupal: 7.xUsing Composer to manage Drupal site dependencies
Downloads
Download tar.gz
82.3 KB
MD5: 330310b47b78590e1d52032c33efc018
SHA-1: 899a95075112e7b7850f2906b5cdb7e4c56d3e26
SHA-256: aeac4ae8127f3a9ebc2f7dc20229cd9176622717858761b4b63ceebaeb96e2bd
Download zip
111.44 KB
MD5: a372c5c75dd77b382340c881a91da7ca
SHA-1: c49180ea33caaeaf7646dd6cfe85ad0665258db4
SHA-256: e8536c2b7e6ab6e61c8ef993ce29964bea7b2698df2e86826f302d8bf0e5d6a5
Release notes
Add a summary here
Contributors (22)
Chris Burge, Daniel_Rose, Gerben Spil, IRuslan, SylvainM, aditya.ghan, ashutoshsngh, batemangwu, bc, bkosborne, calebtr, cilefen, hey_germano, japerry, jenlampton, leotorati, mcdruid, nielsvm, selwynpolit, sillygwailo, snufkin, wranvaud
Changelog
Issues: 29 issues resolved.
Changes since 7.x-1.3:
Bug
- #2649140 by bc: maxlength for path length is too low
- #2854920 by Chris Burge, nielsvm: Protocol scheme determination is overly strict
- #2637698 by SylvainM, nielsvm: Use DRUPAL_ROOT for require_once in _acquia_purge_load()
- #2550497 by snufkin, aditya.ghan: Call to undefined function drupal_get_path_alias()
- #2558985 by IRuslan: Wrong theme usage for 'acquia_purge_status_report'
- #2838146 by wranvaud, nielsvm: Documentation comments corrections
- #2642458 by leotorati: Varnish does not work correctly in environments with basic authentication
- #2630202 by mcdruid: Call to undefined function user_access()
- #2888192 by selwynpolit: Module is incorrectly requiring path_inc
- #2891779 by ashutoshsngh: Fatal error with AcquiaPurgeProcessorAjax
- #2879944: Manual Purge (Paths) block has php error on panel page
- zd402618: Call to undefined method AcquiaPurgeProcessorRuntime::diagnostics() fixed
- #2894021: *.acquia-sites.com domain got detected when there was only 1 domain present.
- #2894021 by nielsvm: When extending purging to fastly, domains include acquia-sites.com
- #2932244 by Gerben Spil: The acquia_purge_ajax_processor ajax request returns a redirect and is not working
- #2966566 by jenlampton, japerry: Call to undefined function drupal_strtolower()
- #3055863 by cilefen: "Increase your cron interval" advice is wrong
- #2893643 by selwynpolit: Curl_multi loop failures
- #3113221 by sillygwailo: Add documentation around purge and SSL.
- #2969612 by bkosborne: Infinite JavaScript loop in certain situations
- #3131543 by japerry: PHP has reserved all method names with a double underscore prefix for future use
- #3210284 by japerry, hey_germano, batemangwu: PHP 7.4 error: Trying to access array offset on value of type bool
- #2376957 by calebtr: Autocomplete throws errors when purging paths with extensions
Feature
- #2831316 by Daniel_Rose: Missing word in error message in admin.inc file
- #2891745: Allow clearing purge queue using web UI
Misc
- Converted everything to Markdown, to bring this into line with the other purge projects.
- URLs in PROJECTPAGE.md
- As the D8 branch became default and PROJECTPAGE.md moving there, this is normalized as the 7.x README.md.
- RENAMED _acquia_purge_purge_requests() --> _acquia_purge_curl() to emphasize its role as generic (and efficient) HTTP request executor.
- Strengthened _acquia_purge_curl() a little bit.
- Moving OOP code under lib/. This makes the main tree cleaner and OOP
- NEW AcquiaPurgeHostingInfo:
- NEW _acquia_purge_get_diagnosis_token() to help support.
- Fixed self-caused regression in drush_acquia_purge_ap_process().
- Fixed AcquiaPurgeAjaxProcessor
- Another lib/ break.
- A rewrite of ``_acquia_purge_load()`` now allows third-party code to swap out all used classes by Acquia Purge. A variable like ``$conf['_acquia_purge_state_disk'] = 'sites/custom_state_disk.php';`` will lead to a different class to be loaded. See the inline documentation in ``_acquia_purge_variable()`` for more info.
- Fixed self-caused fatal in _acquia_purge_get_diagnosis_token().
- More self-caused bugs.
- NEW method AcquiaPurgeService::vclOddities() introduces the ability to track and report on suspicious balancer behavior.
- Code style.
- Putting ::vclOddities() into practice by registering 403's, 405's and $_SERVER['HTTP_X_GEO_COUNTRY'].
- Much better quality-of-service for day-to-day problems found with using AP:
- Defined _acquia_purge_processor_base and making sure its preloaded now.
- Defining services and class names for the new executors plugin type.
- README.md: addition of "scenario specifics", this will be helpful for support and customers reading documentation.
- Old copy-paste stub code, to be rewritten for its purpose.
- Invalidation API similar to that of purge-d8, but massively simplified.
- processor
- executor
- Class renames.
- NEW _acquia_purge_registry() and autogenerated service names, plus the ability to query them easily. Much less maintenance, great performance and ease of use!
- _acquia_purge_registry() is new, so key version starts at 1.
- NEW 'queue items' are now first class objects, that spawn 'invalidation' objects. The latter, allows executors to call ::setStatus() on them which are set on the queue item objects.
- NEW parameter on _acquia_purge_deprecated().
- acquia_purge.info
- Deprecating AcquiaPurgeService::queueItemPath() in favor of AcquiaPurgeQueueItem::getPath().
- AcquiaPurgeExecutorsService is now iterable and working.
- First stubbed executor backends.
- AcquiaPurgeExecutorInterface and AcquiaPurgeExecutorBase are usable too now.
- Hooks hook_acquia_purge_purge_(failure|success) are now deprecated in favor of registering executors through hook_acquia_purge_executors().
- AcquiaPurgeInvalidation objects now work.
- AcquiaPurgeService::process() has now been ported to the new stack with executor plugins. The stubs work, just need to port the old code into them.
- NEW AcquiaPurgeExecutorRequest as value object for making requests.
- AcquiaPurgeExecutorRequest
- NEW AcquiaPurgeExecutorInterfaceAcquiaPurgeExecutor::getRequest(), ::requestsExecute(), ::requestsLog()
- Fixed basepath setting in AcquiaPurgeService.
- Prepare for wildcard/* support on Acquia Cloud (requires Varnish 4)
- Regain the capability of first clearing Drupal's cache
- Cleaned up AcquiaPurgeExecutorBase::requestsExecute()
- DEPRECATED _acquia_purge_export_debug_symbols() --> AcquiaPurgeExecutorBase::exportDebugSymbols()AcquiaPurgeExecutorBase::exportDebugSymbols()
- PORTED _acquia_purge_purge_acquia_purge_purge() to the new AcquiaPurgeExecutorAh class. The MAIN difference of behavior as seen "from the outside" is that now ALL the HTTP requests for ALL paths+domains+schemes are executed at once in parallel, making the ACQUIA_PURGE_PARALLEL_REQUESTS and ACQUIA_PURGE_REQUEST_TIMEOUT constants much more realistically respected.
- NEW AcquiaPurgeInvalidationInterface::setStatusContextSuffix() and AcquiaPurgeInvalidation::getParentContext()
- AcquiaPurgeExecutorRequest::__construct()'s uri parameter now optional.
- acquia_purge.deprecated.inc: updated _acquia_purge_queue_pop
- AcquiaPurgeService::process() now calls ::history()
- Merge branch 'executors' into 7.x-1.x
- NEW experimental wildcard support.
- Report the method in debug output.
- Rewrote ::exportDebugSymbols() to be a lot saner and similar to Python's output.
- Automatically issue BAN when geoIP is detected.
- GeoIP rewording
- acquia_purge_trim_slashes for a specific client.
- Don't variate on wildcard paths
- README.md: updated scenario specific advice.
- Provide AcquiaPurgeService to executor's ::isEnabled() so that it can be queried for configuration.
- Report executors in APD and allow camelcase output in the diagnostic reports.
- Authentication Token --> Authentication token
- Authentication Token --> Authentication token
- NEW AcquiaPurgeOddities: in order to make oddity management better used and more maintainable. I MOVED storage into the variable system in order to persist flags across queue clears, this is necessary as else problems will be quickly forgotten.
- Don't clear page cache on sites that use DrupalFakeCache.
- NEW AcquiaPurgeHostingInfo ::getPageCacheBackends() and ::isPageCacheFake()
- Improved "anonymous page cache" diagnostic and recommendations around DrupalFakeCache.
- Provide all diagnostics with the AcquiaPurgeService object.
- NEW constant ACQUIA_PURGE_VERSION, used for auto cache invalidation after upgrading module versions.
- NEW AcquiaPurgeDiagnostics which is the objectification of the tests system and brings maintainability and performance improvements. Oh, did I say other modules can now register tests?
- Clarifying the language on the deprecation wrappers.
- NEW ACQUIA_PURGE_CID_PREFIX is now used for cache ids.
- _acquia_purge_are_we_using_memcached() -> AcquiaPurgeHostingInfo::isMemcacheUsed()
- Improved wildcard messaging.
- NEW AcquiaPurgeCapacity replaces the procedural function + 50% speed improvement for standard 2 balancer configurations, this will have massive impact.
- Fix AcquiaPurgeProcessorBase::processQueueChunk()
- NEW AcquiaPurgeHostingInfo::areDomainsHardcoded()
- NEW constant ACQUIA_PURGE_VERSION
- Enable cron by default now.
- Fixed hook_requirements() implementation.
- Major, major, major cleanup of the diagnostic checks.
- AcquiaPurgeExecutorAh --> AcquiaPurgeExecutorAcquia
- Rewritten important parts of DOMAINS.md and README.md regarding domain management.
- Improved ACSF support.
- zd387605: Function theme() does not exist.
- FIXED a buggy situation where 'drush ap-process' could yield thousands of PHP procs and cascades, when being called every minute on cronjobs.
- AcquiaPurgeExecutorBase::requestsExecute(): removed a dangerous static + always close multi handlers.
- Fixing the config.json implementation.
- Add sanity checking around registering classes from the registry.
- Add Support for PHP 8.2
- Code Linting and general cleanup
- Append trait name to AcquiaPurgeQueueStatusTrait
Support
- Zendesk ticket 231083
- Zendesk ticket 231083
- z403306: AcquiaPurgeHostingInfo use array output from json_decode, can still typecast but not sure if that's needed.