HEX
Server: LiteSpeed
System: Linux baran.dnsprotection.me 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: ddir12 (3618)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/ddir12/up/elementor-pro/modules/atomic-form/file-upload/validators/composite-validator.php
<?php
namespace ElementorPro\Modules\AtomicForm\File_Upload\Validators;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

final class Composite_Validator implements Validator {

	private array $validators;

	public function __construct( array $settings ) {
		$max_files = ! empty( $settings['multiple'] ) ? $settings['max-files'] : 1;

		$this->validators = [
			new Required_Validator( ! empty( $settings['required'] ) ),
			new Max_Count_Validator( $max_files ),
			new Extension_Validator( $settings['file-types'] ),
			new Size_Validator( $settings['max-file-size'] ),
		];
	}

	public function validate( array $files ): ?string {
		foreach ( $this->validators as $validator ) {
			$error = $validator->validate( $files );
			if ( null !== $error ) {
				return $error;
			}
		}

		return null;
	}
}