/supervisor-configuration

Manage Supervisor configuration in PHP

Primary LanguagePHPMIT LicenseMIT

DEPRECATION NOTICE

This package has been moved under SupervisorPHP.

https://github.com/supervisorphp/configuration

For details see http://supervisorphp.com

Indigo Supervisor Configuration

Latest Version Software License Build Status Code Coverage Quality Score HHVM Status Total Downloads Dependency Status

Manage Supervisor configuration in PHP.

Install

Via Composer

$ composer require indigophp/supervisor-configuration

Usage

Create a configuration using the builder.

use Indigo\Supervisor\Configuration;
use Indigo\Supervisor\Configuration\Section\Supervisord;
use Indigo\Supervisor\Configuration\Section\Program;
use Indigo\Supervisor\Configuration\Renderer;

$config = new Configuration;
$renderer = new Renderer;

$section = new Supervisord(['identifier' => 'supervisor']);
$config->addSection($section);

$section = new Program('test', ['command' => 'cat']);
$config->addSection($section);

echo $renderer->render($config);

The following sections are available in this pacakge:

  • Supervisord
  • Supervisorctl
  • UnixHttpServer
  • InetHttpServer
  • Includes**
  • Group*
  • Program*
  • EventListener*
  • FcgiProgram*

*Note: These sections has to be instantiated with a name and optionally a properties array:

$section = new Program('test', ['command' => 'cat']);

**Note: The keyword include is reserved in PHP, so the class name is Includes, but the section name is still include.

Existing configuration

You can parse your existing configuration, and use it as a Configuration object.

use Indigo\Supervisor\Configuration;
use Indigo\Supervisor\Configuration\Parser\File;

$parser = new File('/etc/supervisor/supervisord.conf');

$configuration = new Configuration;

// argument is optional, returns a new Configuration object if not passed
$parser->parse($configuration);

Available parsers:

Writting configuration

You can use Writers to write configuration to various destinations.

use Indigo\Supervisor\Configuration;
use Indigo\Supervisor\Configuration\Writer\File;

// As a second parameter you can optionally pass an instance of Indigo\Supervisor\Configuration\Renderer
$writer = new File('/etc/supervisor/supervisord.conf');

$configuration = new Configuration;

$writer->write($configuration);

Available writers:

You can find detailed info about properties for each section here: http://supervisord.org/configuration.html

Testing

$ phpspec run

Contributing

Please see CONTRIBUTING for details.

Credits

License

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