Minimal PHP QA Docker image focused on local/CI static analysis, styling and other tools.
It's plays nicely with kool.dev managed environments, but can fit in any other PHP use-case.
- Phan - static analyzer for PHP (
phan
) - PHP Mess Detector (
phpmd
) - PHP Copy/Paste Detector (
phpcpd
)
- PHP Coding Standards Fixer (
php-cs-fixer
)
- Local PHP Security Checker (
local-php-security-checker
)
- PHPUnit 9.5 (
phpunit
) - PHPUnit 10 (
phpunit10
for cutting-edge testing)
Just execute any QA tool available straight from a new container. Using kool
is the prefered way:
cd my-laravel-project/
kool docker kooldev/phpqa:7.4 phan
kool docker kooldev/phpqa:7.4 php-cs-fixer
With vanilla Docker you would need to run:
docker run --rm --init -it -v $(pwd):/app -w /app kooldev/phpqa:7.4
We strongly recommend checking out
kool
CLI for more benefits to your Docker environemnts.
The image built is kooldev/phpqa
with tags:
Examples of what you can do in a kool
powered environment. Add to your kool.yml
file:
# kool.yml
scripts:
# just an alias to the PHPQA container
phpqa: kool docker kooldev/phpqa:8.1
# using the alias to call each tool with predefined parameters
# assuming your application code is located in a `app/` folder
phan: kool run phpqa phan --color -p -l app -iy 5
phpcpd: kool run phpqa phpcpd --fuzzy app
# ...
Please feel free to use and open a PR with more QA tools you find useful to have! As a sort of roadmap these are the goals in our mind for the short term:
- Make tools specific configurations available for the user in a friendly manner.
- Ship boilerplate of CI snippets for popular engines (Github Actions, CircleCI, TravisCI).
- Add more tools that we find helpful.
You should change fwd-template.json
for configuration and template/
folder for the actual base templates.
After any changes, we need to run kool run template
to parse the templates and generate all versions folder/files.
The MIT License (MIT). Please see License File for more information.