mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-08-29 08:17:18 +08:00
git-subtree-dir: public/legacy git-subtree-split: 817a12dc0c30c189f56d5cb1f7dc37a9631bdbe3
35 lines
1 KiB
PHP
35 lines
1 KiB
PHP
<?php
|
|
namespace Api\V8\Param\Options;
|
|
|
|
use Api\V8\Param\PageParams;
|
|
use Symfony\Component\OptionsResolver\Options;
|
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
|
use Symfony\Component\Validator\Constraints as Assert;
|
|
|
|
class Page extends BaseOption
|
|
{
|
|
const REGEX_PAGE_PATTERN = '/[^\d]/';
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function add(OptionsResolver $resolver)
|
|
{
|
|
$resolver
|
|
->setDefined('page')
|
|
->setAllowedTypes('page', 'array')
|
|
->setAllowedValues('page', $this->validatorFactory->createClosureForIterator([
|
|
new Assert\NotBlank(),
|
|
new Assert\Regex([
|
|
'pattern' => self::REGEX_PAGE_PATTERN,
|
|
'match' => false,
|
|
]),
|
|
], true))
|
|
->setNormalizer('page', function (Options $options, $values) {
|
|
$pageParams = new PageParams($this->validatorFactory, $this->beanManager);
|
|
$pageParams->configure($values);
|
|
|
|
return $pageParams;
|
|
});
|
|
}
|
|
}
|