room_overrides = LocalConfig::maybe_parse_ini_file(LocalConfig::ROOM_OVERRIDES_CONFIG) ?? array(); } private const ROOM_OVERRIDES_CONFIG = "room-overrides.ini"; private readonly array $room_overrides; private static function maybe_parse_ini_file(string $filename): array | null { global $CONFIG_ROOT; $file = "$CONFIG_ROOT/$filename"; if (!file_exists($file)) { log_warning("config file not found: $file"); return null; } return parse_ini_file($file, process_sections: true, scanner_mode: INI_SCANNER_RAW); } /** * Read local config from the filesystem. */ public static function read_from_files() { return new LocalConfig(); } private function get_room_override(string $room_id, string $override_key) { $room_overrides = $this->room_overrides[$room_id] ?? array(); return $room_overrides[$override_key] ?? null; } public function get_room_staff_count_override(string $room_id) { return $this->get_room_override($room_id, 'staff_count'); } } /** * @var LocalConfig $LOCAL_CONFIG */ $LOCAL_CONFIG = LocalConfig::read_from_files(); ?>