We are happy for contributions. Before you invest a lot of time however, best open an issue on GitHub to discuss your idea. Then we can coordinate efforts if somebody is already working on the same thing.

Testing the Library

This chapter describes how to run the tests that are included with this library.

First clone the repository, install the vendors, then run the tests:

$ git clone
$ cd FOSHttpCache
$ composer install --dev
$ phpunit

Unit Tests

To run the unit tests separately:

$ phpunit tests/Unit

Functional Tests

The library also includes functional tests against a Varnish and NGINX instance. The functional test suite by default uses PHP’s built-in web server. If you have PHP 5.4 or newer, simply run with the default configuration.

If you want to run the tests on PHP 5.3, you need to configure a web server listening on localhost:8080 that points to the folder tests/Functional/Fixtures/web.

If you want to run the tests on HHVM, you need to configure a web server and start a HHVM FastCGI server.

To run the functional tests:

$ phpunit tests/Functional

Tests are organized in groups: one for each reverse proxy supported. At the moment groups are: varnish and nginx.

To run only the varnish functional tests:

$ phpunit --group=varnish

For more information about testing, see Testing Your Application.

Building the Documentation

First install Sphinx and install enchant (e.g. sudo apt-get install enchant), then download the requirements:

$ pip install -r doc/requirements.txt

To build the docs:

$ cd doc
$ make html
$ make spelling