Image Cache is a very simple PHP module that accepts an image source and will compress and cache the file, move it to a new directory, and return the cache source for the image.

cache, caching, image cache, php cache


Image Cache v. 1.0.0

Image Cache is a very simple PHP class that accepts an image source and will compress and cache the file, move it to a new directory, and returns the new source for the image.

Current Status

Build Status

Employing for continuous integration testing and assurance of code validity.


Install Composer by opening Terminal and navigating to the directory in which you'd like to install Image Cache.

Download Composer:

curl -sS | php

Create a composer.json file:

        "require" : {
            "nielse63/phpimagecache": "dev-master"

Navigate to your project root and run the install command.

$ php composer.phar install

From there, include the vendor/autoload.php file in your project, and initialize the class as normal.

More information on installing and using Composer can be found at, and dependency information on the package can be found at


Manual Testing

To test the script manually by receiving visual output, setup a virtual host and load demo/index.php in your browser. Three examples are set in that file: the original image called from an outside source; a cached example referencing the outside source via an absolute URL; and an internal source referencing a file path.

Using Chrome Developer Tools you can see the difference in load times between the external source (non-cached image) and the internally stored and cached image.

Unit Testing

Some extremely basic unit tests are included with the script and can be run using PHP Unit. I'm working on continuing to build up these tests and would more than welcome any contributions to the tests.

To execute the tests in a bundled script (along with rebuilding the docs), clone the repository, navigate to the root of the repo in terminal, and execute:

$: sh build

Assuming you have the phpunit and phpdoc commands intalled, the tests will pass and docs will be rebuilt.

What's Next

See the source for a full to do list of changes that I wish to accomplish moving forward.


Contributing to the project would be a massive help in maintaining and extending the script. The module is being used on a larger scale than I initially imagined, and continuing to maintain it is becoming a little time consuming for just me.

If you're interested in contributing, issue a pull request on Github or email me directly at

For any issues found or extensions you'd like to see, feel free to submit an issue ticket so we can start a discussion about the viability of the problem and how it can be resolved.


Creative Commons Attribution Lisence:

Bitdeli Badge