Skip to content

Commit

Permalink
prepare release
Browse files Browse the repository at this point in the history
  • Loading branch information
spiralbot committed Sep 29, 2022
1 parent e724d9d commit e3b0685
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 106 deletions.
6 changes: 3 additions & 3 deletions composer.json
Expand Up @@ -28,10 +28,10 @@
],
"require": {
"php": ">=8.1",
"spiral/core": "^3.1"
"spiral/core": "^3.0.2"
},
"require-dev": {
"spiral/boot": "^3.1",
"spiral/boot": "^3.0.2",
"phpunit/phpunit": "^9.5.20",
"mockery/mockery": "^1.5",
"vimeo/psalm": "^4.27"
Expand All @@ -48,7 +48,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "3.1.x-dev"
"dev-master": "3.0.x-dev"
}
},
"config": {
Expand Down
45 changes: 0 additions & 45 deletions src/Bootloader/ValidationBootloader.php
Expand Up @@ -5,58 +5,13 @@
namespace Spiral\Validation\Bootloader;

use Spiral\Boot\Bootloader\Bootloader;
use Spiral\Config\ConfiguratorInterface;
use Spiral\Config\Patch\Set;
use Spiral\Core\Container\SingletonInterface;
use Spiral\Validation\Config\ValidationConfig;
use Spiral\Validation\Exception\ValidationException;
use Spiral\Validation\ValidationInterface;
use Spiral\Validation\ValidationProvider;
use Spiral\Validation\ValidationProviderInterface;

/**
* @template TFilterDefinition
*/
final class ValidationBootloader extends Bootloader implements SingletonInterface
{
protected const SINGLETONS = [
ValidationProviderInterface::class => ValidationProvider::class,
ValidationInterface::class => [self::class, 'initDefaultValidator'],
];

public function __construct(
private readonly ConfiguratorInterface $config
) {
}

public function init(): void
{
$this->config->setDefaults(ValidationConfig::CONFIG, [
'defaultValidator' => null,
]);
}

/**
* @param class-string<TFilterDefinition> $name
*/
public function setDefaultValidator(string $name): void
{
if ($this->config->getConfig(ValidationConfig::CONFIG)['defaultValidator'] === null) {
$this->config->modify(ValidationConfig::CONFIG, new Set('defaultValidator', $name));
}
}

/**
* @noRector RemoveUnusedPrivateMethodRector
*/
private function initDefaultValidator(
ValidationConfig $config,
ValidationProviderInterface $provider
): ValidationInterface {
if ($config->getDefaultValidator() === null) {
throw new ValidationException('Default Validator is not configured.');
}

return $provider->getValidation($config->getDefaultValidator());
}
}
21 changes: 0 additions & 21 deletions src/Config/ValidationConfig.php

This file was deleted.

11 changes: 5 additions & 6 deletions src/ValidationProvider.php
Expand Up @@ -8,13 +8,9 @@
use Spiral\Core\InvokerInterface;
use Spiral\Validation\Exception\ValidationException;

/**
* @template TValidation of ValidationInterface
* @template TFilterDefinition
*/
final class ValidationProvider implements ValidationProviderInterface, SingletonInterface
{
/** @var array<class-string<TValidation>, \Closure> */
/** @var array<non-empty-string, \Closure> */
private array $resolvers = [];

public function __construct(
Expand All @@ -23,13 +19,16 @@ public function __construct(
}

/**
* @param class-string<TFilterDefinition> $name
* @param non-empty-string $name
*/
public function register(string $name, \Closure $resolver): void
{
$this->resolvers[$name] = $resolver;
}

/**
* @param non-empty-string $name
*/
public function getValidation(string $name, array $params = []): ValidationInterface
{
if (!isset($this->resolvers[$name])) {
Expand Down
8 changes: 2 additions & 6 deletions src/ValidationProviderInterface.php
Expand Up @@ -4,16 +4,12 @@

namespace Spiral\Validation;

/**
* @template TValidation
* @template TFilterDefinition
*/
interface ValidationProviderInterface
{
/**
* Get validation object by name.
* @param class-string<TFilterDefinition> $name
* @psalm-return TValidation
*
* @param non-empty-string $name
*/
public function getValidation(string $name, array $params = []): ValidationInterface;
}
25 changes: 0 additions & 25 deletions tests/Config/ValidationConfigTest.php

This file was deleted.

0 comments on commit e3b0685

Please sign in to comment.