Manage Supervisor configuration in PHP.
Via Composer
$ composer require supervisorphp/configuration
Create a configuration using the builder.
use Supervisor\Configuration\Configuration;
use Supervisor\Configuration\Section\Supervisord;
use Supervisor\Configuration\Section\Program;
use Indigophp\Ini\Rendere;
$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->toArray());
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
.
You can parse your existing configuration, and use it as a Configuration
object.
use Supervisor\Configuration\Configuration;
use Supervisor\Configuration\Loader\IniFileLoader;
$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:
- File
- Filesystem (Using league/flysystem)
- Text
You can use Writer
s to write configuration to various destinations.
use Supervisor\Configuration;
use Supervisor\Configuration\Writer\File;
// As a second parameter you can optionally pass an instance of Supervisor\Configuration\Renderer
$writer = new File('/etc/supervisor/supervisord.conf');
$configuration = new Configuration;
$writer->write($configuration);
Available writers:
- File
- Filesystem (Using league/flysystem)
You can find detailed info about properties for each section here: https://supervisord.org/configuration.html
$ composer test
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.