1 | <?php namespace CMPayments\SchemaValidator; |
||
20 | class BaseValidator |
||
21 | { |
||
22 | use ErrorTrait; |
||
23 | use ArrayTrait; |
||
24 | use EnumTrait; |
||
25 | use FormatTrait; |
||
26 | use IntegerTrait; |
||
27 | use NumberTrait; |
||
28 | use StringTrait; |
||
29 | use RegexTrait; |
||
30 | |||
31 | const TYPE = 'type'; |
||
32 | const FORMAT = 'format'; |
||
33 | |||
34 | // Types |
||
35 | const _ARRAY = 'array'; |
||
36 | const BOOLEAN = 'boolean'; |
||
37 | const DOUBLE = 'double'; |
||
38 | const INTEGER = 'integer'; |
||
39 | const NUMBER = 'number'; |
||
40 | const OBJECT = 'object'; |
||
41 | const STRING = 'string'; |
||
42 | const CLOSURE = 'closure'; |
||
43 | const _NULL = 'null'; |
||
44 | |||
45 | // String formats |
||
46 | const DATE = 'date'; |
||
47 | const DATETIME = 'datetime'; |
||
48 | const EMAIL = 'email'; |
||
49 | const TIME = 'time'; |
||
50 | const UTC_SECONDS = 'utc-seconds'; |
||
51 | const URL = 'url'; |
||
52 | |||
53 | // Valid types for the items in $schema->properties |
||
54 | private $validTypes = [ |
||
55 | self::_ARRAY, |
||
56 | self::BOOLEAN, |
||
57 | self::NUMBER, |
||
58 | self::_NULL, |
||
59 | self::OBJECT, |
||
60 | self::STRING |
||
61 | ]; |
||
62 | |||
63 | // Valid formats for string typed items |
||
64 | private $validFormats = [ |
||
65 | self::DATE, |
||
66 | self::DATETIME, |
||
67 | self::EMAIL, |
||
68 | self::TIME, |
||
69 | self::UTC_SECONDS, |
||
70 | self::URL |
||
71 | ]; |
||
72 | |||
73 | /** |
||
74 | * @return array |
||
75 | * @throws ValidateException |
||
76 | */ |
||
77 | public function getValidTypes() |
||
81 | |||
82 | /** |
||
83 | * @return array |
||
84 | */ |
||
85 | public function getValidFormats() |
||
89 | } |
||
90 |