$value) { if (isset($this->$option) && isset($value)) { $this->$option = $value; } } } if (getenv('CONVERT')) { $this->convert = (bool) getenv('CONVERT'); } if (getenv('PYTHON')) { $this->python = getenv('PYTHON'); } } /** * Get Config singleton instance from YAML config file. * * @param string $yamlfile YAML config file name * * @return Config */ public static function getInstance($yamlfile = 'config.yml') { $yamlPath = __DIR__.'/../'.$yamlfile; if (is_null(self::$instance) || self::$instance->file != $yamlfile) { if (is_file($yamlfile)) { $options = Yaml::parse(file_get_contents($yamlPath)); } elseif ($yamlfile == 'config.yml') { /* Allow for the default file to be missing in order to not surprise users that did not create a config file */ $options = []; } else { throw new \Exception("Can't find config file at ".$yamlPath); } self::$instance = new self($options); self::$instance->file = $yamlfile; } return self::$instance; } /** * Destroy singleton instance. * * @return void */ public static function destroyInstance() { self::$instance = null; } }