* * For the full copyright and license information, please view the "LICENSE.md" * file that was distributed with this source code. */ declare(strict_types=1); namespace Respect\Validation\Rules; use Respect\Validation\Helpers\CanValidateUndefined; use function in_array; /** * Abstract class for searches into arrays. * * @author Henrique Moody */ abstract class AbstractSearcher extends AbstractRule { use CanValidateUndefined; /** * {@inheritDoc} */ public function validate($input): bool { $dataSource = $this->getDataSource(); if ($this->isUndefined($input) && empty($dataSource)) { return true; } return in_array($input, $dataSource, true); } /** * @return mixed[] */ abstract protected function getDataSource(): array; }