/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Setup/Option/SelectConfigOption.php
86 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Framework\Setup\Option; /** * Select option in deployment config tool */ class SelectConfigOption extends AbstractConfigOption { /**#@+ * Frontend input types */ const FRONTEND_WIZARD_RADIO = 'radio'; const FRONTEND_WIZARD_SELECT = 'select'; /**#@- */ /**#@- */ private $selectOptions; /** * Constructor * * @param string $name * @param string $frontendType * @param array $selectOptions * @param string $configPath * @param string $description * @param string|null $defaultValue * @param string|array|null $shortCut * @throws \InvalidArgumentException */ public function __construct( $name, $frontendType, array $selectOptions, $configPath, $description = '', $defaultValue = null, $shortCut = null ) { if ($frontendType != self::FRONTEND_WIZARD_SELECT && $frontendType != self::FRONTEND_WIZARD_RADIO) { throw new \InvalidArgumentException("Frontend input type has to be 'select' or 'radio'."); } if (!$selectOptions) { throw new \InvalidArgumentException('Select options can\'t be empty.'); } $this->selectOptions = $selectOptions; parent::__construct( $name, $frontendType, self::VALUE_REQUIRED, $configPath, $description, $defaultValue, $shortCut ); } /** * Get available options * * @return array */ public function getSelectOptions() { return $this->selectOptions; } /** * Validates input data * * @param mixed $data * @return void * @throws \InvalidArgumentException */ public function validate($data) { if (!in_array($data, $this->getSelectOptions())) { throw new \InvalidArgumentException("Value specified for '{$this->getName()}' is not supported: '{$data}'"); } parent::validate($data); } }