Fetching contributors…
Cannot retrieve contributors at this time
102 lines (73 sloc) 2.87 KB


First of all, thank you for contributing, you are awesome!

Here are a few rules to follow in order to ease code reviews, and discussions before maintainers accept and merge your work:

  • You MUST follow the PSR-1 and PSR-2 recommendations. Use the PHP-CS-Fixer tool to fix the syntax of your code automatically.
  • You MUST run the test suite.
  • You MUST write (or update) unit tests.
  • You SHOULD write documentation.

Please, write commit messages that make sense, and rebase your branch before submitting your Pull Request.

One may ask you to squash your commits too. This is used to "clean" your Pull Request before merging it (we don't want commits such as fix tests, fix 2, fix 3, etc.).

Also, while creating your Pull Request on GitHub, you MUST write a description which gives the context and/or explains why you are creating it.

Thank you!

Running tests

Before running the test suite, execute the following Composer command to install the dependencies used by the bundle:

$ composer update

Then, execute the tests executing:

$ ./phpunit

JavaScript Test Suite

First, install PhantomJS (see the website for further details or simply use your favourite package manager) and the development dependencies using:

$ cd Resources
$ npm install

then run the JS test suite with:

$ npm run test

Because the current test suite runs against the built javascript a build is automatically run first (see 'Compiling the JavaScript files' below for further details). You can explicitly run only the test suite with:

$ phantomjs js/run_jsunit.js js/router_test.html

Alternatively you can open Resources/js/router_test.html in your browser which runs the same test suite with a graphical output.

Compiling the JavaScript files


We already provide a compiled version of the JavaScript; this section is only relevant if you want to make changes to this script.

This project is using Gulp to compile JavaScript files. In order to use Gulp you must install both node and npm.

If you are not familiar with using Gulp, it is recommended that you review this An Introduction to Gulp.js tutorial which will guide you through the process of getting node and npm installed.

Once you have node and npm installed:

$ cd Resources
$ npm install

Then to perform a build

$ npm run build