Skip to content


Minimum PHP version: 7.4.0 Actions PHP Censor Codecov Latest Version Total downloads License

PHP Censor

PHP Censor is an open source, self-hosted, continuous integration server for PHP projects (PHPCI fork). Official twitter @php_censor.

PHP Censor versions:

Version Latest Branch Status Minimal PHP Version
1.0 (Morty Smith) 1.0.16 release-1.0 Old version (UNSUPPORTED) >=5.6, <8.0
1.1 (Birdperson) 1.1.6 release-1.1 Old version (UNSUPPORTED) >=5.6, <8.0
1.2 (Summer Smith) 1.2.4 release-1.2 Old version (UNSUPPORTED) >=5.6, <8.0
1.3 (Jerry Smith) 1.3.7 release-1.3 Old version (UNSUPPORTED) >=5.6, <8.0
2.0 (Rick Sanchez) 2.0.13 release-2.0 Last stable version (Upgrade from v1 to v2) >=7.4
2.1 (Mr. Meeseeks) 2.1.5 release-2.1 Current stable version >=7.4
2.2 WIP master Feature minor version (WIP) >=7.4


More screenshots.

System requirements

  • Unix-like OS (Windows isn't supported);

  • PHP 7.4+ (with OpenSSL support and enabled functions: exec(), shell_exec() and proc_open());

  • Web-server (Nginx or Apache2);

  • Database (MySQL/MariaDB or PostgreSQL);

  • Beanstalkd queue;


  • Clone project from GitHub, Bitbucket (Git/Hg), GitLab, Git, Hg (Mercurial), SVN (Subversion) or from local directory;

  • Set up and tear down database tests for PostgreSQL, MySQL or SQLite;

  • Install Composer dependencies;

  • Run tests for PHPUnit, Atoum, Behat, Codeception and PHPSpec;

  • Check code via Lint, PHPParallelLint, Pdepend, PHPCodeSniffer, PHPCpd, PHPCsFixer, PHPDocblockChecker, PHPLoc, PHPMessDetector, PHPTalLint and TechnicalDebt;

  • Run through any combination of the other supported plugins, including Campfire, CleanBuild, CopyBuild, Deployer, Env, Git, Grunt, Gulp, PackageBuild, Phar, Phing, Shell and Wipe;

  • Send notifications to Email, XMPP, Slack, IRC, Flowdock and Telegram;

  • Use your LDAP-server for authentication;


Versions changelog.


See milestones.


See Installing section in documentation;


See Updating section in documentation;

Configuring project

There are several ways to set up the project:

  • Add project without any project config (Runs "zero-config" plugins, including: Composer, TechnicalDebt, PHPLoc, PHPCpd, PHPCodeSniffer, PHPMessDetector, PHPDocblockChecker, PHPParallelLint, PHPUnit and Codeception);

  • Similar to Travis CI, to support PHP Censor in your project, you simply need to add a .php-censor.yml file to the root of your repository;

  • Add project config in PHP Censor project page (And it will cancel file config from project repository);

The project config should look something like this:

    action:    "install"
    directory: "."
    config: "phpunit.xml"
    allow_failures: true
    standard: "PSR2"
    allow_failures: true
    default_mailto_address: admin@php-censor.local

More details about configuring project in documentation.


Run to apply latest migrations:

cd /path/to/php-censor
./bin/console php-censor-migrations:migrate

Run to create a new migration:

cd /path/to/php-censor
./bin/console php-censor-migrations:create NewMigrationName

Code style

cd /path/to/php-censor

./vendor/bin/php-cs-fixer fix --allow-risky=yes


cd /path/to/php-censor

./vendor/bin/phpunit --configuration ./phpunit.xml.dist --coverage-html ./tests/runtime/coverage -vvv --colors=always

For Phar plugin tests set phar.readonly setting to Off (0) in php.ini config. Otherwise the tests will be skipped.

For database tests create an empty databases on 'localhost' with user/password for MySQL/PostgreSQL and set env variables from phpunit.xml.dist config. For example:

#!/usr/bin/env bash

psql --username="test" --host="" --echo-all --command="DROP DATABASE IF EXISTS \"php-censor-test\";"
psql --username="test" --host="" --echo-all --command="CREATE DATABASE \"php-censor-test\";"

mysql --user="test" --password="test" --host="" --verbose --execute="CREATE DATABASE IF NOT EXISTS \`php-censor-test\`;"

export SKIP_DB_TESTS=0;\
export POSTGRESQL_DBNAME=php-censor-test;\
export POSTGRESQL_USER=test;\
export MYSQL_DBNAME=php-censor-test;\
export MYSQL_USER=test;\
export MYSQL_PASSWORD=test;\
vendor/bin/phpunit --configuration=phpunit.xml.dist --verbose


Full PHP Censor documentation.


PHP Censor is open source software licensed under the BSD-2-Clause license.