Uname:
Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software:
Apache
PHP version:
8.0.30 [ PHP INFO ] PHP os:
Linux
Server Ip:
145.239.37.162
Your Ip:
216.73.216.190
User:
dreampi (1009562) | Group:
users (100)
Safe Mode:
OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
namespace MailPoet\Features;
if (!defined('ABSPATH')) exit;
use MailPoet\Entities\FeatureFlagEntity;
class FeatureFlagsController {
/** @var FeaturesController */
private $featuresController;
/** @var FeatureFlagsRepository */
private $featureFlagsRepository;
public function __construct(
FeaturesController $featuresController,
FeatureFlagsRepository $featureFlagsRepository
) {
$this->featuresController = $featuresController;
$this->featureFlagsRepository = $featureFlagsRepository;
}
public function set($name, $value) {
if (!$this->featuresController->exists($name)) {
throw new \RuntimeException("Feature '$name' does not exist'");
}
$this->featureFlagsRepository->createOrUpdate(['name' => $name, 'value' => $value]);
}
public function getAll() {
$flags = $this->featureFlagsRepository->findAll();
$flagsMap = array_combine(
array_map(
function (FeatureFlagEntity $flag) {
return $flag->getName();
},
$flags
),
$flags
);
$output = [];
foreach ($this->featuresController->getDefaults() as $name => $default) {
$output[] = [
'name' => $name,
'value' => isset($flagsMap[$name]) ? (bool)$flagsMap[$name]->getValue() : $default,
'default' => $default,
];
}
return $output;
}
}