Config | Computed default

Hey @Shyim‍,

ich habe versucht es etwas generischer zu gestalten, damit man das vielleicht wiederverwenden kann:

    public function install(InstallContext $context): void
    {
        parent::install($context);

        $this->setDefaultConfigValue(
            'MeinPlugin.config.myField',
            Uuid::randomHex(),
            true
        );
    }

    private function setDefaultConfigValue($key, $value, $renew = false): void
    {
        $data = [
            'configurationKey' => $key,
            'configurationValue' => $value
        ];

        $defaultContext = Context::createDefaultContext();

        /** @var EntityRepository $repository */
        $repository = $this->container->get('system_config.repository');

        $criteria = new Criteria();
        $criteria->addFilter(
            new EqualsFilter('configurationKey', $key)
        );

        $config = $repository->search($criteria, $defaultContext);
        if ($config->getTotal() === 0) {
            $repository->create([$data], $defaultContext);
            return;
        }

        if ($config->getTotal() > 0 && $renew === true) {
            $data['id'] = $config->first()->getId();
            $repository->update([$data], $defaultContext);
        }
    }