TL;DR Add this to your circle.yml:
dependencies: cache_directories: - ~/.composer/cache
A naive way to cache composer dependencies would be to add the install directory to the
cache_directories section of your circle.yml. Unfortunately, composer doesn’t seem to care that you have cached dependencies and will install them all over again. You can fix this by adding composer’s cache to your
cache_directories. This way, composer does not need to download your dependencies on every build.