treehouselabs / standards
Development standards by and for TreeHouse employees
Installs: 47 087
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 11
Forks: 2
Open Issues: 0
Requires
- php: >=7.1
- friendsofphp/php-cs-fixer: ^2.7
Requires (Dev)
- phpunit/phpunit: ^6.4
This package is not auto-updated.
Last update: 2024-11-04 07:10:00 UTC
README
This repository provides documentation and tools to help comply with our code standards.
Code standards
We mostly adhere to the Symfony code style, but each project can define its own rules. What's more important than specific rules, is that everyone applies them, consistently. That's what this repository aims to help with.
Installation
To install in a project, add this as a dev dependency:
composer require --dev treehouselabs/standards
Configuration
Copy the distributed .php_cs
file, modify where needed:
cp vendor/treehouselabs/standards/.php_cs .
NOTE: Make sure that .php_cs.cache
is in .gitignore
!
vendor/ .php_cs.cache composer.lock
Travis
When the fixer is run as a Travis script, builds fail when there is a CS
violation. Add this to .travis.yml
:
script: - bin/php-cs-fixer fix --config=.php_cs --verbose --diff --dry-run
For increased performance, make sure to cache the fixer's cache dir:
cache:
directories:
- $HOME/.php-cs-fixer
Usage
There are multiple ways to integrate CS in your workflow. Here are some methods that we use:
Just write it yourself 😄
Not the easiest way, but if it suits you, adopt the code style, and write it that way. No fixes needed!
Apply manually
At any time before committing, run the fixer manually:
./bin/php-cs-fixer fix -v
This can also be done using a plugin for your editor of choice.
Using a git commit hook
The repository ships with a git pre-commit hook that automatically fixes your code before committing it. Be careful however since this can modify code without you seeing it.
cp vendor/treehouselabs/standards/hooks/pre-commit .git/pre-commit chmod +x .git/pre-commit
Of course if you prefer a different method, that's cool. Whatever works. Again, the important thing is that it's applied consistently.