/phpqa

Docker image providing static analysis tools for PHP

Primary LanguagePHPMIT LicenseMIT

Static Analysis Tools for PHP

Docker image providing static analysis tools for PHP.

Build Status

Available tools

Running tools

Pull the image:

docker pull jakzal/phpqa

The default command will list available tools:

docker run -it --rm jakzal/phpqa

To run the selected tool inside the container, you'll need to mount the project directory on the container:

docker run -it --rm -v $(pwd):/project -w /project jakzal/phpqa phpstan analyse src

You'll probably want to tweak this command for your needs and create an alias for convenience:

alias phpqa="docker run -it --rm -v $(pwd):/project -w /project jakzal/phpqa:alpine"

Add it to your ~/.bashrc so it's defined every time you start a new terminal session.

Now the command becomes a lot simpler:

phpqa phpstan analyse src

Building the image

git clone https://github.com/jakzal/phpqa.git
cd phpqa
make build

To build the alpine version:

make build-alpine

Customising the image

It's often needed to customise the image with project specific extensions. To achieve that simply create a new image based on jakzal/phpqa:

FROM jakzal/phpqa:alpine

RUN apk add --no-cache libxml2-dev \
 && docker-php-ext-install soap

Next, build it:

docker build -t foo/phpqa .

Finally, use your customised image instead of the default one:

docker run -it --rm -v $(pwd):/project -w /project foo/phpqa phpmetrics .

Debugger & Code Coverage

The php-dbg debugger is provided by default. No additional extensions (like XDebug) are required to calculate code coverage:

phpqa phpdbg -qrr ./vendor/bin/phpunit --coverage-text

Contributing

Please read the Contributing guide to learn about contributing to this project. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.