PDO plugin: Reflections

* com.noccy.pdo: Implemented reflection for PDO databases,
  tables and columns. Reflectors for MySQL and Sqlite.
* com.noccy.pdo: Added pdo:inspect command.
* com.noccy.docker: Added basic stack management and commands.
* com.noccy.docker: Moved commands to dedicated namespace.
* Environment: readConfig and writeConfig helper added, with
  a flag to use the global config dir ~/.config/spark.
This commit is contained in:
2021-12-23 23:22:25 +01:00
parent 3f63cad176
commit 538383c33d
28 changed files with 819 additions and 12 deletions

View File

@@ -47,6 +47,35 @@ class Environment
return $runner;
}
public function readConfig(string $filename, bool $global=false): ?array
{
$path = ($global ? getenv("HOME")."/.config/spark" : $this->getConfigDirectory());
$filepath = $path . "/" . $filename;
$dirname = dirname($filepath);
if (!is_dir($dirname) || !file_exists($filepath)) {
return null;
}
$json = file_get_contents($filepath);
return json_decode($json, true);
}
public function writeConfig(string $filename, $config, bool $global=false)
{
$path = ($global ? getenv("HOME")."/.config/spark" : $this->getConfigDirectory());
$filepath = $path . "/" . $filename;
$dirname = dirname($filepath);
if (!is_dir($dirname) && $global) {
mkdir($dirname, 0777, true);
}
$json = json_encode($config, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
file_put_contents($filepath, $json);
}
public function loadEnvironment()
{
if ($this->loaded) {