mirror of
https://github.com/Respect/Validation.git
synced 2026-03-16 23:35:45 +01:00
There's no reason not to make this method public. It will actually be easier for users to test their rules when they extend this class if this method is public.
31 lines
714 B
PHP
31 lines
714 B
PHP
<?php
|
|
|
|
/*
|
|
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Respect\Validation\Rules;
|
|
|
|
use Attribute;
|
|
use Respect\Validation\Message\Template;
|
|
use Respect\Validation\Rules\Core\Simple;
|
|
|
|
use function floor;
|
|
use function is_numeric;
|
|
use function sqrt;
|
|
|
|
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)]
|
|
#[Template(
|
|
'{{name}} must be a perfect square number',
|
|
'{{name}} must not be a perfect square number',
|
|
)]
|
|
final class PerfectSquare extends Simple
|
|
{
|
|
public function isValid(mixed $input): bool
|
|
{
|
|
return is_numeric($input) && floor(sqrt((float) $input)) == sqrt((float) $input);
|
|
}
|
|
}
|