mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
- removed @since 2.0.0 as it is a base release - updated version in @since and @deprecated tag taking into account all patch releases
80 lines
2.3 KiB
PHP
80 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Backend\Setup;
|
|
|
|
use Magento\Framework\Config\Data\ConfigData;
|
|
use Magento\Framework\Config\File\ConfigFilePool;
|
|
use Magento\Framework\Setup\ConfigOptionsListInterface;
|
|
use Magento\Framework\Setup\Option\TextConfigOption;
|
|
use Magento\Framework\App\DeploymentConfig;
|
|
use \Magento\Framework\Setup\BackendFrontnameGenerator;
|
|
|
|
/**
|
|
* Deployment configuration options needed for Backend module
|
|
*
|
|
*/
|
|
class ConfigOptionsList implements ConfigOptionsListInterface
|
|
{
|
|
/**
|
|
* Input key for the options
|
|
*/
|
|
const INPUT_KEY_BACKEND_FRONTNAME = 'backend-frontname';
|
|
|
|
/**
|
|
* Path to the values in the deployment config
|
|
*/
|
|
const CONFIG_PATH_BACKEND_FRONTNAME = 'backend/frontName';
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getOptions()
|
|
{
|
|
return [
|
|
new TextConfigOption(
|
|
self::INPUT_KEY_BACKEND_FRONTNAME,
|
|
TextConfigOption::FRONTEND_WIZARD_TEXT,
|
|
self::CONFIG_PATH_BACKEND_FRONTNAME,
|
|
'Backend frontname (will be autogenerated if missing)'
|
|
)
|
|
];
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
|
*/
|
|
public function createConfig(array $options, DeploymentConfig $deploymentConfig)
|
|
{
|
|
$configData = new ConfigData(ConfigFilePool::APP_ENV);
|
|
|
|
if (!$deploymentConfig->get(self::CONFIG_PATH_BACKEND_FRONTNAME)
|
|
&& !isset($options[self::INPUT_KEY_BACKEND_FRONTNAME])) {
|
|
$options[self::INPUT_KEY_BACKEND_FRONTNAME] = BackendFrontnameGenerator::generate();
|
|
}
|
|
if (isset($options[self::INPUT_KEY_BACKEND_FRONTNAME])) {
|
|
$configData->set(self::CONFIG_PATH_BACKEND_FRONTNAME, $options[self::INPUT_KEY_BACKEND_FRONTNAME]);
|
|
}
|
|
|
|
return [$configData];
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function validate(array $options, DeploymentConfig $deploymentConfig)
|
|
{
|
|
$errors = [];
|
|
if (isset($options[self::INPUT_KEY_BACKEND_FRONTNAME])
|
|
&& !preg_match('/^[a-zA-Z0-9_]+$/', $options[self::INPUT_KEY_BACKEND_FRONTNAME])
|
|
) {
|
|
$errors[] = "Invalid backend frontname '{$options[self::INPUT_KEY_BACKEND_FRONTNAME]}'";
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
}
|