<?php

class Config
{
  public array $Data;

  function __construct()
  {
    $this->Data = array();
  }

  function ReadValue(string $Name)
  {
    if (!is_array($Name)) $Name = explode('/', $Name);
    $Last = array_pop($Name);
    $Data = &$this->Data;
    foreach ($Name as $Item)
    {
      $Data = &$Data[$Item];
    }
    return $Data[$Last];
  }

  function WriteValue(string $Name, $Value)
  {
    if (!is_array($Name)) $Name = explode('/', $Name);
    $Last = array_pop($Name);
    $Data = &$this->Data;
    foreach ($Name as $Item)
    {
      $Data = &$Data[$Item];
    }
    $Data[$Item] = $Value;
  }

  function LoadFromFile(string $FileName): void
  {
    $ConfigData = array();
    include $FileName;
    foreach ($this->Data as $Index => $Item)
    {
      if (array_key_exists($Index, $ConfigData))
        $this->Data[$Index] = $ConfigData[$Index];
    }
  }

  function SaveToFile(string $FileName): void
  {
    file_put_contents($FileName, "<?php \n\n\$ConfigData = ".var_export($this->Data, true).";\n");
  }

  function GetAsArray(): array
  {
    return $this->Data;
  }
}