PHPackages                             erp-mgroen/php-censor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. erp-mgroen/php-censor

ActiveApplication[Testing &amp; Quality](/categories/testing)

erp-mgroen/php-censor
=====================

PHP Censor is a open source self-hosted continuous integration server for PHP projects (PHPCI fork).

0.0.5(8y ago)03BSD-2-ClausePHPPHP &gt;=5.6.0

Since Jun 23Pushed 8y ago3 watchersCompare

[ Source](https://github.com/erp-mgroen/php-censor)[ Packagist](https://packagist.org/packages/erp-mgroen/php-censor)[ Docs](http://php-censor.info)[ RSS](/packages/erp-mgroen-php-censor/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (28)Versions (7)Used By (0)

[![PHP Censor](https://camo.githubusercontent.com/5c9147d2ec26481a18c02613130b4bb33a54ed488e33a11e03e7b7c11557c051/687474703a2f2f63692e7068702d63656e736f722e696e666f2f6275696c642d7374617475732f696d6167652f323f6272616e63683d6d6173746572266c6162656c3d50485043656e736f72267374796c653d666c61742d737175617265)](http://ci.php-censor.info/build-status/view/2?branch=master)[![Travis CI](https://camo.githubusercontent.com/6a3faddcca7ff374b8dc56487ed1d9e7f74d15b2b4bf2b130d9cdcdfbd7db801/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7068702d63656e736f722f7068702d63656e736f722f6d61737465722e7376673f6c6162656c3d5472617669734349267374796c653d666c61742d737175617265)](https://travis-ci.org/php-censor/php-censor?branch=master)[![Latest Version](https://camo.githubusercontent.com/bf438c9175cba3842f32493544a96ab2a16cad4d515e5d9f116febf41e1abb3a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068702d63656e736f722f7068702d63656e736f722e7376673f6c6162656c3d56657273696f6e267374796c653d666c61742d737175617265)](https://packagist.org/packages/php-censor/php-censor)[![Total downloads](https://camo.githubusercontent.com/f062557d297c73b2bf4603445b1df408bf54ae04612a6564d006ed0594ae5d45/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068702d63656e736f722f7068702d63656e736f722e7376673f6c6162656c3d446f776e6c6f616473267374796c653d666c61742d737175617265)](https://packagist.org/packages/php-censor/php-censor)[![License](https://camo.githubusercontent.com/a4c863408b3800fe4d665888c28dbd325f4fb58466dafb9ae9cb629c321dcbdb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7068702d63656e736f722f7068702d63656e736f722e7376673f6c6162656c3d4c6963656e7365267374796c653d666c61742d737175617265)](https://packagist.org/packages/php-censor/php-censor)[![SensioLabs Insight](https://camo.githubusercontent.com/7557b1fb5638323d27903a77702059373510bcb9b871df4eed683cceb66247fc/68747470733a2f2f696d672e736869656c64732e696f2f73656e73696f6c6162732f692f32366632386265652d613836312d343562322d626331382d6564326163376465666432322e7376673f6c6162656c3d496e7369676874267374796c653d666c61742d737175617265)](https://insight.sensiolabs.com/projects/26f28bee-a861-45b2-bc18-ed2ac7defd22)

 [![PHP Censor](docs/images/php-censor-black.png)](docs/images/php-censor-black.png)

**PHP Censor** is a open source self-hosted continuous integration server for PHP projects ([PHPCI](https://www.phptesting.org) fork).

[![Dashboard](docs/screenshots/dashboard.png)](docs/screenshots/dashboard.png)

More [screenshots](docs/en/screenshots.md).

- [System requirements](#system-requirements)
- [Features](#features)
- [Installing](#installing)
- [Installing via Docker](#installing-via-docker)
- [Updating](#updating)
- [Configuring project](#configuring-project)
- [Migrations](#migrations)
- [Tests](#tests)
- [Documentation](#documentation)
- [License](#license)

System requirements
-------------------

[](#system-requirements)

- Unix-like OS (**Windows isn't supported**);
- PHP 5.6+ (with OpenSSL support and enabled functions: `exec()`, `shell_exec()` and `proc_open()`);
- Web-server (Nginx or Apache2);
- Database (MySQL/MariaDB or PostgreSQL);
- Beanstalkd queue (Optional);

Features
--------

[](#features)

- Clone project from Github, Bitbucket, Gitlab, Git, Mercurial, SVN or from local directory;
- Set up and tear down database tests for [PostgreSQL](docs/en/plugins/pgsql.md), [MySQL](docs/en/plugins/mysql.md) or [SQLite](docs/en/plugins/sqlite.md);
- Install [Composer](docs/en/plugins/composer.md) dependencies;
- Run tests for PHPUnit, Atoum, Behat, Codeception and PHPSpec;
- Check code via Lint, PHPParallelLint, Pdepend, PHPCodeSniffer, PHPCpd, PHPCsFixer, PHPDocblockChecker, PHPLoc, PHPMessDetect, PHPTalLint and TechnicalDept;
- Run through any combination of the other [supported plugins](docs/en/README.md#plugins), including Campfire, CleanBuild, CopyBuild, Deployer, Env, Git, Grunt, Gulp, PackageBuild, Phar, Phing, Shell and Wipe;
- Send notifications on Email, XMPP, Slack, IRC, Flowdock, HipChat and [Telegram](https://github.com/LEXASOFT/PHP-Censor-Telegram-Plugin);
- Use your LDAP-server for authentication;

Installing
----------

[](#installing)

- Go to the directory in which you want to install PHP Censor, for example: `/var/www`:

```
cd /var/www
```

- Create project by Composer:

```
composer create-project php-censor/php-censor php-censor.local --keep-vcs
```

Or download [latest archive](https://github.com/php-censor/php-censor/releases/latest) from Github, unzip it and run `composer install`.

- Create empty database for application (Mysql/MariaDB or Postgres);
- Install Beanstalkd Queue (Optional, if you are going to use queue with Worker):

```
aptitude install beanstalkd # For deb-based
```

- Install PHP Censor itself:

```
cd ./php-censor.local

# Interactive installation
./bin/console php-censor:install

# Non-interactive installation
./bin/console php-censor:install --url='http://php-censor.local' --db-type=pgsql --db-host=localhost --db-name=php-censor --db-user=php-censor --db-password=php-censor --db-port=null --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local' --queue-use=1 --queue-host=localhost --queue-name=php-censor

# Non-interactive installation with prepared config.yml file
./bin/console php-censor:install --config-from-file=yes --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local'
```

- [Add a virtual host to your web server](docs/en/virtual_host.md), pointing to the `public` directory within your new PHP Censor directory. You'll need to set up rewrite rules to point all non-existent requests to PHP Censor;
- [Set up the PHP Censor Worker](docs/en/workers/worker.md) (Need configured Queue) or [a cron-job](docs/en/workers/cron.md) to run PHP Censor builds;

Installing via Docker
---------------------

[](#installing-via-docker)

If you want to install PHP Censor as Docker container, you can use [php-censor/docker-php-censor](https://github.com/php-censor/docker-php-censor) project.

Updating
--------

[](#updating)

- Go to your PHP Censor directory (to `/var/www/php-censor.local` for example):

    ```
    cd /var/www/php-censor.local
    ```
- Pull the latest code from repository by Git (If you want latest `master` branch):

    ```
    git checkout master
    git pull -r
    ```

    Or pull latest version:

    ```
    git fetch
    git checkout
    ```
- Update the Composer dependencies: `composer install`
- Update the database scheme:

    ```
    ./bin/console php-censor-migrations:migrate
    ```
- Restart Supervisord workers (If you use workers and Supervisord):

    ```
    sudo supervisorctl status
    sudo supervisorctl restart
    ...
    sudo supervisorctl restart
    ```

    Or restart Systemd workers (If you use workers and Systemd):

    ```
    sudo systemctl restart
    ...
    sudo systemctl restart
    ```

Configuring project
-------------------

[](#configuring-project)

There are several ways to set up the project:

- Add project without any project config (Runs "zero-config" plugins, including: Composer, TechnicalDept, PHPLoc, PHPCpd, PHPCodeSniffer, PHPMessDetect, PHPDocblockChecker, PHPParallelLint, PHPUnit and Codeception);
- Similar to [Travis CI](https://travis-ci.org), to support PHP Censor in your project, you simply need to add a `.php-censor.yml` (`phpci.yml`/`.phpci.yml` for backward compatibility with PHPCI) 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:

```
setup:
  composer:
    action: "install"
test:
  php_unit:
    config: "phpunit.xml"
  php_mess_detector:
    allow_failures: true
  php_code_sniffer:
    standard: "PSR2"
  php_cpd:
    allow_failures: true
complete:
  email:
    default_mailto_address: admin@php-censor.local
```

More details about [configuring project](docs/en/configuring_project.md).

Migrations
----------

[](#migrations)

Run to apply latest migrations:

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

Run to create new migration:

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

Tests
-----

[](#tests)

```
cd /path/to/php-censor

# For testing on MySQL DB
./vendor/bin/phpunit --configuration ./phpunit.mysql.xml

# For testing on PostgreSQL
./vendor/bin/phpunit --configuration ./phpunit.pgsql.xml
```

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

For database B8Framework tests create empty 'b8\_test' database on 'localhost' with user/password: `root/'`for MySQL and with user/password: `postgres/'` for PostgreSQL (You can change default test user, password and database name in `phpunit.mysql|pgsql.xml` config). If connection failed tests will be skipped.

Documentation
-------------

[](#documentation)

[Full PHP Censor documentation](docs/en/README.md).

License
-------

[](#license)

PHP Censor is open source software licensed under the [BSD-2-Clause license](LICENSE.md).

###  Health Score

25

↑

LowBetter than 40% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Total

5

Last Release

3097d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a95b646ba064f3d76b92794dd66fa23b35e5cb4e21081b508d02ca974d003aae?d=identicon)[korvinko](/maintainers/korvinko)

---

Top Contributors

[![corpsee](https://avatars.githubusercontent.com/u/1416706?v=4)](https://github.com/corpsee "corpsee (493 commits)")[![meadsteve](https://avatars.githubusercontent.com/u/1663120?v=4)](https://github.com/meadsteve "meadsteve (151 commits)")[![dancryer](https://avatars.githubusercontent.com/u/35393?v=4)](https://github.com/dancryer "dancryer (141 commits)")[![Adirelle](https://avatars.githubusercontent.com/u/24633?v=4)](https://github.com/Adirelle "Adirelle (29 commits)")[![REBELinBLUE](https://avatars.githubusercontent.com/u/2143908?v=4)](https://github.com/REBELinBLUE "REBELinBLUE (27 commits)")[![ss-gxp](https://avatars.githubusercontent.com/u/26460289?v=4)](https://github.com/ss-gxp "ss-gxp (25 commits)")[![mavimo](https://avatars.githubusercontent.com/u/43941?v=4)](https://github.com/mavimo "mavimo (23 commits)")[![SimonHeimberg](https://avatars.githubusercontent.com/u/16302148?v=4)](https://github.com/SimonHeimberg "SimonHeimberg (22 commits)")[![kamermans](https://avatars.githubusercontent.com/u/266265?v=4)](https://github.com/kamermans "kamermans (22 commits)")[![MarkMaldaba](https://avatars.githubusercontent.com/u/1492120?v=4)](https://github.com/MarkMaldaba "MarkMaldaba (12 commits)")[![freez10](https://avatars.githubusercontent.com/u/1759462?v=4)](https://github.com/freez10 "freez10 (10 commits)")[![steve-reporo](https://avatars.githubusercontent.com/u/17121260?v=4)](https://github.com/steve-reporo "steve-reporo (8 commits)")[![tobiastom](https://avatars.githubusercontent.com/u/49210?v=4)](https://github.com/tobiastom "tobiastom (8 commits)")[![elkangaroo](https://avatars.githubusercontent.com/u/1144202?v=4)](https://github.com/elkangaroo "elkangaroo (8 commits)")[![maks-rafalko](https://avatars.githubusercontent.com/u/3725595?v=4)](https://github.com/maks-rafalko "maks-rafalko (7 commits)")[![mikebronner](https://avatars.githubusercontent.com/u/1791050?v=4)](https://github.com/mikebronner "mikebronner (6 commits)")[![roylindauer](https://avatars.githubusercontent.com/u/1851879?v=4)](https://github.com/roylindauer "roylindauer (6 commits)")[![kinncj](https://avatars.githubusercontent.com/u/292542?v=4)](https://github.com/kinncj "kinncj (6 commits)")[![NamelessCoder](https://avatars.githubusercontent.com/u/2228052?v=4)](https://github.com/NamelessCoder "NamelessCoder (6 commits)")[![yourilima](https://avatars.githubusercontent.com/u/1853634?v=4)](https://github.com/yourilima "yourilima (5 commits)")

---

Tags

phptestingcontinuous integrationciopen-sourcephpciself hostedphp-censorci-server

### Embed Badge

![Health badge](/badges/erp-mgroen-php-censor/health.svg)

```
[![Health](https://phpackages.com/badges/erp-mgroen-php-censor/health.svg)](https://phpackages.com/packages/erp-mgroen-php-censor)
```

###  Alternatives

[moodlehq/moodle-plugin-ci

Helps running Moodle plugins analysis checks and tests under various CI environments.

632.5M](/packages/moodlehq-moodle-plugin-ci)[blackboard-open-source/moodle-plugin-ci

Assists with running Moodle plugins in Travis CI

42141.5k](/packages/blackboard-open-source-moodle-plugin-ci)[acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

32896.7k](/packages/acquia-orca)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
