How to contribute

Everybody should be able to help. Here's how you can make this project more awesome:

  1. Fork it
  2. improve it
  3. submit a pull request

Your work will then be reviewed as soon as possible (suggestions about some changes, improvements or alternatives may be given).

Here's some tips to make you the best contributor ever:

Standard code

Use PHP CS fixer to make your code compliant with Memio's coding standards:

./vendor/bin/php-cs-fixer fix .

Specifications

Memio drives its development using phpspec:

# Generate the specification class:
phpspec describe 'Memio\PhpPrinter\MyNewClass'

# Customize the specification class:
$EDITOR tests/spec/Memio/PhpPrinter/MyNewClass.php

# Generate the specified class:
phpspec run

# Customize the class:
$EDITOR src/Memio/PhpPrinter/MyNewClass.php

phpspec run # Should be green!

Keeping your fork up-to-date

To keep your fork up-to-date, you should track the upstream (original) one using the following command:

git remote add upstream https://github.com/memio/PHP-Printer.git

Then get the upstream changes:

git checkout master
git pull --rebase origin master
git pull --rebase upstream master
git checkout <your-branch>
git rebase master

Finally, publish your changes:

git push -f origin <your-branch>

Your pull request will be automatically updated.