Test on PHP 7.2 through 8.4, up from 8.0, and update the checkout and
cache actions to v4. Key the cache on the PHP version and composer.json:
there's no committed composer.lock, so every matrix job was sharing one
vendor cache. Add a Redis service and run the integration suite too,
which the workflow never ran.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>