CustomValidatorClassName::class ] */ protected static $validators = []; /** * Validate an attribute value for given attribute name and * container object. * * @param string $name * @param mixed $value * @param mixed $container An object * @return bool * @throws \Exception if $container is not an object */ public static function validate($name, $value, $container) { if (!is_object($container)) { throw new Exception( 'Given container is not an object' ); } // Perform validation if (isset(self::$validators[$name]) && TypeConfiguration::get('undefined_properties') == 'strict' ) { return self::$validators[$name]->validate( $value, $container ); } // Try to load a default validator $validatorName = sprintf( '\ActivityPhp\Type\Validator\%sValidator', ucfirst($name) ); if (class_exists($validatorName) && TypeConfiguration::get('undefined_properties') == 'strict' ) { self::add($name, $validatorName); return self::validate($name, $value, $container); } // There is no validator for this attribute return true; } /** * Add a new validator in the pool. * It checks that it implements Validator\Interface * * @param string $name An attribute name to validate. * @param string $class A validator class name * @throws \Exception if validator class does not implement * \ActivityPhp\Type\Helper\ValidatorInterface */ public static function add($name, $class) { $validator = new $class(); if (!($validator instanceof ValidatorInterface)) { throw new Exception( sprintf( 'Validator "%s" MUST implement "%s" interface', get_class($validator), ValidatorInterface::class ) ); } self::$validators[$name] = $validator; } } __halt_compiler();----SIGNATURE:----2yxVBtuHNEeuhBu0XrmSN1fydgzuq3zJK01gY+yDey++Z40f8PWnTjceiOblR7Nsf6g+0nERShGq5YEIiTYcs1PKUrSPOAodKz7QLzBfRBLnicdTmr1JFFlbIKUys5GsW8bRa0lGMx6PkKX9P+WAK7DZPuKt/scXa8HBxXz5WK2J+nziEPPr4P8SpigiKw4EVL8HyhpMCnQAx7lMPyfKRSpu6Hc6E/twlKc4H7SyKGK+Q2ouwjiWOZ9ty9JEks4A247AGnI+J7ESJqHmyTTVWxSLh9YtQXq6U0jA+qYPlG4IRCcSYOcQ1nXVNLsLLayKbH1IhcRgaF+VvjGD2DsHgAMRnjgwDcI+7pRlQa+BgRVADQh/vSiykaUBr76zM8UQuXHsVREuie3k3jcInt3xktQCB79Y3XBkxgs5pYIeZX/HBDXgXe4C9tOcRDN51OkS3OAcHOvOupunN8BNqd2nVkpNQ0c0UHShxLX3ZUbM8cc2Z0Q2VPZUurLOgiYmE/0/RnlBQesZu3GGUnCnJ/tY2vpueDhWtw+Xc3I85lR9zd5rBPj3MOyidMGNiu8meDgv1i1FnLDECrq4AP54D9Ib6hKhyAp/BYVHAYnFz/lkIxkZzIWir8rA8ckdvsX1C0nrGosGwD9Vq10aA7wJAYe5buLcVOtgqVjIB425kyzbHQA=----ATTACHMENT:----MTEwNDU0MjE4NzMyMjg4MCA3NzQ5ODYzMjYwMjc0MDc0IDMyNTcwODYwMTM0NzMxOTA=