Add SettingEntity and SettingsRepository

[MAILPOET-2436]
This commit is contained in:
Jan Jakeš
2019-10-28 13:46:49 +01:00
committed by Jack Kitterhing
parent 388ced8b53
commit 0d04df570c
3 changed files with 78 additions and 0 deletions

View File

@ -192,6 +192,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Tasks\State::class);
// Settings
$container->autowire(\MailPoet\Settings\SettingsController::class)->setPublic(true);
$container->autowire(\MailPoet\Settings\SettingsRepository::class)->setPublic(true);
// User Flags
$container->autowire(\MailPoet\Settings\UserFlagsController::class);
$container->autowire(\MailPoet\Settings\UserFlagsRepository::class)->setPublic(true);

View File

@ -0,0 +1,57 @@
<?php
namespace MailPoet\Entities;
use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
use MailPoet\Doctrine\EntityTraits\CreatedAtTrait;
use MailPoet\Doctrine\EntityTraits\UpdatedAtTrait;
use MailPoet\Util\Helpers;
use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
use MailPoetVendor\Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity()
* @ORM\Table(name="settings")
*/
class SettingEntity {
use AutoincrementedIdTrait;
use CreatedAtTrait;
use UpdatedAtTrait;
/**
* @ORM\Column(type="string")
* @Assert\NotBlank()
* @var string
*/
private $name;
/**
* @ORM\Column(type="text")
* @var string|null
*/
private $value;
/** @return string */
public function getName() {
return $this->name;
}
/** @param string $name */
public function setName($name) {
$this->name = $name;
}
/** @return mixed */
public function getValue() {
return is_serialized($this->value) ? unserialize($this->value) : $this->value;
}
/** @param mixed $value */
public function setValue($value) {
$value = Helpers::recursiveTrim($value);
if (is_array($value)) {
$value = serialize($value);
}
$this->value = $value;
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace MailPoet\Settings;
use MailPoet\Doctrine\Repository;
use MailPoet\Entities\SettingEntity;
/**
* @method SettingEntity[] findBy(array $criteria, array $order_by = null, int $limit = null, int $offset = null)
* @method SettingEntity|null findOneBy(array $criteria, array $order_by = null)
* @method SettingEntity|null findOneById(mixed $id)
* @method SettingEntity[] findAll()
* @method void persist(SettingEntity $entity)
* @method void remove(SettingEntity $entity)
*/
class SettingsRepository extends Repository {
protected function getEntityClassName() {
return SettingEntity::class;
}
}