<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Store\Model\Config;
use Magento\Framework\App\DeploymentConfig\ValidatorInterface;
use Magento\Store\Model\ScopeInterface;
/**
* Validates that scopes data contain correct values
*/
class Validator implements ValidatorInterface
{
/**
* Checks that scopes data contain at least one not admin website, group and store
*
* {@inheritdoc}
*/
public function validate(array $data)
{
$errorMessage = ['Scopes data should have at least one not admin website, group and store.'];
//list of scope names and their identifier for admin scopes in $data.
$entities = [
ScopeInterface::SCOPE_GROUPS => 0,
ScopeInterface::SCOPE_STORES => 'admin',
ScopeInterface::SCOPE_WEBSITES => 'admin'
];
foreach ($entities as $scopeName => $key) {
if (empty($data[$scopeName])
|| (count($data[$scopeName]) == 1 && isset($data[$scopeName][$key]))) {
return $errorMessage;
}
}
return [];
}
}
|