<?php


namespace CMSMSExt;


/**
 * Class ConfigManager
 *
 * @package CMSMSExt
 */
final class ConfigManager
{
  /**
   * @var array
   */
  private static array $_modules_configs = [];
  
  /**
   * @param \CMSModule $mod
   *
   * @return mixed
   */
  public static function GetConfigInstance(\CMSModule $mod)
  {
    $mod_name = $mod->GetName();
    
    if( !isset(self::$_modules_configs[$mod_name]) )
    {
      self::$_modules_configs[$mod_name] = new ModuleConfig($mod);
    }
    
    return self::$_modules_configs[$mod_name];
  }
  
  /**
   * @param $mod_name
   *
   * @return ModuleConfig|void
   */
  public static function GetConfigFor($mod_name)
  {
    
    if( !isset(self::$_modules_configs[$mod_name]) )
    {
      $mod = \cms_utils::get_module($mod_name);
      
      if( !\is_object($mod_name) )
      {
        return;
      }
      
      self::$_modules_configs[$mod_name] = new ModuleConfig($mod);
    }
    
    return self::$_modules_configs[$mod_name];
  }
}
?>