Skip to content

Docker images for PHP Quality Assurance, Static Analysis, and CI tools

License

Notifications You must be signed in to change notification settings

kool-dev/docker-phpqa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI/CD

Description

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.

Tools included in the image

Static analysis

  • Phan - static analyzer for PHP (phan)
  • PHP Mess Detector (phpmd)
  • PHP Copy/Paste Detector (phpcpd)

Code Style

  • PHP Coding Standards Fixer (php-cs-fixer)

Security

  • Local PHP Security Checker (local-php-security-checker)

Testing

  • PHPUnit 9.5 (phpunit)
  • PHPUnit 10 (phpunit10 for cutting-edge testing)

Usage

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.

Available Tags

The image built is kooldev/phpqa with tags:

Using kool.yml

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
  # ...

Contributing

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.

Update images with templates

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.

License

The MIT License (MIT). Please see License File for more information.