StructChildSettingFactory.php 780 Bytes
<?php

namespace YahnisElsts\AdminMenuEditor\Customizable\Builders;

use YahnisElsts\AdminMenuEditor\Customizable\Settings;

class StructChildSettingFactory extends SettingFactory {
	/**
	 * @var \YahnisElsts\AdminMenuEditor\Customizable\Settings\AbstractStructSetting
	 */
	private $struct;

	private $idToChildKey = [];

	public function __construct(Settings\AbstractStructSetting $parent, array $defaults = []) {
		parent::__construct($parent->getStore(), $defaults);
		$this->struct = $parent;
	}

	protected function idFrom($path) {
		$id = $this->struct->makeChildId(str_replace('.', '-', $path));
		$this->idToChildKey[$id] = $path;
		return $id;
	}

	public function getChildKeyFromId($id) {
		return isset($this->idToChildKey[$id]) ? $this->idToChildKey[$id] : null;
	}
}