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.
Employing travis-ci.org 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 https://getcomposer.org/installer | 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 getcomposer.org, and dependency information on the package can be found at packagist.org.
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.
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.
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 [email protected].
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: