Added plugins and build tools
This commit is contained in:
42
plugins/com.noccy.docker/DockerCompose/Stack.php
Normal file
42
plugins/com.noccy.docker/DockerCompose/Stack.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace SparkPlug\Com\Noccy\Docker\DockerCompose;
|
||||
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
|
||||
class Stack
|
||||
{
|
||||
|
||||
private array $compose;
|
||||
|
||||
private string $version;
|
||||
|
||||
private array $services;
|
||||
|
||||
public function __construct(string $filename)
|
||||
{
|
||||
$this->compose = Yaml::parseFile($filename);
|
||||
|
||||
$this->version = $this->compose['version']??null;
|
||||
$this->enumServices();
|
||||
}
|
||||
|
||||
private function enumServices()
|
||||
{
|
||||
foreach ($this->compose['services'] as $service=>$config) {
|
||||
$this->services[$service] = new Service($config, $this);
|
||||
}
|
||||
}
|
||||
|
||||
public function getServiceNames(): array
|
||||
{
|
||||
return array_keys($this->services);
|
||||
}
|
||||
|
||||
public function getService(string $name): ?Service
|
||||
{
|
||||
return $this->services[$name] ?? null;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user