This commit is contained in:
Yuri Kuznetsov
2024-02-28 14:59:33 +02:00
parent f1e67d943d
commit dcaa1e209e
6 changed files with 19 additions and 18 deletions
@@ -29,19 +29,19 @@
namespace Espo\Classes\Record\Webhook;
use Espo\Core\Record\Defaults\DefaultsDefaultsPopulator;
use Espo\Core\Record\Defaults\DefaultsPopulator as DefaultsPopulatorInterface;
use Espo\Core\Record\Defaults\DefaultPopulator;
use Espo\Core\Record\Defaults\Populator;
use Espo\Entities\User;
use Espo\Entities\Webhook;
use Espo\ORM\Entity;
/**
* @implements DefaultsPopulatorInterface<Webhook>
* @implements Populator<Webhook>
*/
class DefaultsPopulator implements DefaultsPopulatorInterface
class DefaultsPopulator implements Populator
{
public function __construct(
private DefaultsDefaultsPopulator $defaultsDefaultsPopulator,
private DefaultPopulator $defaultsDefaultsPopulator,
private User $user
) {}
@@ -40,9 +40,9 @@ use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
/**
* @implements DefaultsPopulator<Entity>
* @implements Populator<Entity>
*/
class DefaultsDefaultsPopulator implements DefaultsPopulator
class DefaultPopulator implements Populator
{
public function __construct(
private Acl $acl,
@@ -37,7 +37,7 @@ use Espo\ORM\Entity;
* @template TEntity of Entity
* @noinspection PhpUnused
*/
interface DefaultsPopulator
interface Populator
{
/**
* @param TEntity $entity
@@ -33,10 +33,10 @@ use Espo\Core\InjectableFactory;
use Espo\Core\Utils\Metadata;
use Espo\ORM\Entity;
class DefaultsPopulatorFactory
class PopulatorFactory
{
/** @var class-string<DefaultsDefaultsPopulator> */
private string $defaultClassName = DefaultsDefaultsPopulator::class;
/** @var class-string<DefaultPopulator> */
private string $defaultClassName = DefaultPopulator::class;
public function __construct(
private InjectableFactory $injectableFactory,
@@ -44,19 +44,19 @@ class DefaultsPopulatorFactory
) {}
/**
* @return DefaultsPopulator<Entity>
* @return Populator<Entity>
*/
public function create(string $entityType): DefaultsPopulator
public function create(string $entityType): Populator
{
return $this->injectableFactory->create($this->getClassName($entityType));
}
/**
* @return class-string<DefaultsPopulator<Entity>>
* @return class-string<Populator<Entity>>
*/
private function getClassName(string $entityType): string
{
/** @var ?class-string<DefaultsPopulator<Entity>> $className */
/** @var ?class-string<Populator<Entity>> $className */
$className = $this->metadata->get("recordDefs.$entityType.defaultsPopulatorClassName");
if ($className) {
+3 -2
View File
@@ -44,8 +44,8 @@ use Espo\Core\ORM\Repository\Option\SaveOption;
use Espo\Core\Record\Access\LinkCheck;
use Espo\Core\Record\ActionHistory\Action;
use Espo\Core\Record\ActionHistory\ActionLogger;
use Espo\Core\Record\Defaults\DefaultsPopulator;
use Espo\Core\Record\Defaults\DefaultsPopulatorFactory;
use Espo\Core\Record\Defaults\Populator as DefaultsPopulator;
use Espo\Core\Record\Defaults\PopulatorFactory as DefaultsPopulatorFactory;
use Espo\Core\Record\Formula\Processor as FormulaProcessor;
use Espo\Core\Select\Primary\Filters\One;
use Espo\Core\Utils\Json;
@@ -713,6 +713,7 @@ class Service implements Crud,
/**
* @param TEntity $entity
* @noinspection PhpDocSignatureInspection
* @noinspection PhpUnusedParameterInspection
*/
public function populateDefaults(Entity $entity, stdClass $data): void
{
+1 -1
View File
@@ -10,7 +10,7 @@
"type": "string"
},
"defaultsPopulatorClassName": {
"description": "Populates default values when creating a record. Should implement Espo\\Core\\Record\\Create\\DefaultsPopulator. As of v8.2.",
"description": "Populates default values when creating a record. Should implement Espo\\Core\\Record\\Defaults\\Populator. As of v8.2.",
"type": "string"
},
"readLoaderClassNameList": {