diff --git a/src/Generator/Generator.php b/src/Generator/Generator.php index f65a7e59..963022df 100644 --- a/src/Generator/Generator.php +++ b/src/Generator/Generator.php @@ -216,7 +216,7 @@ public function generateValidateMethod(): MethodGenerator MethodGenerator::FLAG_PUBLIC | MethodGenerator::FLAG_STATIC, '$validator = ' . $newValidatorClassExpr . ';' . "\n" . '$input = is_array($input) ? \\JsonSchema\\Validator::arrayToObjectRecursive($input) : $input;' . "\n" . - '$validator->validate($input, self::$schema);' . "\n\n" . + '$validator->validate($input, self::$internalValidationSchema);' . "\n\n" . 'if (!$validator->isValid() && !$return) {' . "\n" . ($this->generatorRequest->isAtLeastPHP("7.0") ? ' $errors = array_map(function(array $e): string {' . "\n" : @@ -355,7 +355,7 @@ public function generateSetterMethod(PropertyInterface $property): MethodGenerat $setterValidation = ""; } else { $setterValidation = "\$validator = new \JsonSchema\Validator(); -\$validator->validate(\$$name, self::\$schema['properties']['$key']); +\$validator->validate(\$$name, self::\$internalValidationSchema['properties']['$key']); if (!\$validator->isValid()) { throw new \InvalidArgumentException(\$validator->getErrors()[0]['message']); } diff --git a/src/Generator/SchemaToClass.php b/src/Generator/SchemaToClass.php index 0920ad09..fc193a4d 100644 --- a/src/Generator/SchemaToClass.php +++ b/src/Generator/SchemaToClass.php @@ -51,7 +51,7 @@ public function schemaToClass(GeneratorRequest $req): void throw new GeneratorException("cannot generate class for types other than 'object'"); } - $schemaProperty = new PropertyGenerator("schema", $schema, PropertyGenerator::FLAG_PRIVATE | PropertyGenerator::FLAG_STATIC); + $schemaProperty = new PropertyGenerator("internalValidationSchema", $schema, PropertyGenerator::FLAG_PRIVATE | PropertyGenerator::FLAG_STATIC); $schemaProperty->setDocBlock(new DocBlockGenerator( "Schema used to validate input for creating instances of this class", null, diff --git a/src/Spec/Specification.php b/src/Spec/Specification.php index 16b1aadf..5abd6980 100644 --- a/src/Spec/Specification.php +++ b/src/Spec/Specification.php @@ -11,7 +11,7 @@ class Specification * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'files', ], @@ -269,7 +269,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/src/Spec/SpecificationFilesItem.php b/src/Spec/SpecificationFilesItem.php index 2990bb02..5bc34f2f 100644 --- a/src/Spec/SpecificationFilesItem.php +++ b/src/Spec/SpecificationFilesItem.php @@ -11,7 +11,7 @@ class SpecificationFilesItem * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'input', 'className', @@ -104,7 +104,7 @@ public function getTargetNamespace() : ?string public function withInput(string $input) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($input, self::$schema['properties']['input']); + $validator->validate($input, self::$internalValidationSchema['properties']['input']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -122,7 +122,7 @@ public function withInput(string $input) : self public function withClassName(string $className) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($className, self::$schema['properties']['className']); + $validator->validate($className, self::$internalValidationSchema['properties']['className']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -140,7 +140,7 @@ public function withClassName(string $className) : self public function withTargetDirectory(string $targetDirectory) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($targetDirectory, self::$schema['properties']['targetDirectory']); + $validator->validate($targetDirectory, self::$internalValidationSchema['properties']['targetDirectory']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -158,7 +158,7 @@ public function withTargetDirectory(string $targetDirectory) : self public function withTargetNamespace(string $targetNamespace) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($targetNamespace, self::$schema['properties']['targetNamespace']); + $validator->validate($targetNamespace, self::$internalValidationSchema['properties']['targetNamespace']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -238,7 +238,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/src/Spec/SpecificationOptions.php b/src/Spec/SpecificationOptions.php index cfdfbe42..952396a4 100644 --- a/src/Spec/SpecificationOptions.php +++ b/src/Spec/SpecificationOptions.php @@ -11,7 +11,7 @@ class SpecificationOptions * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'properties' => [ 'disableStrictTypes' => [ 'type' => 'boolean', @@ -134,7 +134,7 @@ public function getNewValidatorClassExpr() : string public function withDisableStrictTypes(bool $disableStrictTypes) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($disableStrictTypes, self::$schema['properties']['disableStrictTypes']); + $validator->validate($disableStrictTypes, self::$internalValidationSchema['properties']['disableStrictTypes']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -163,7 +163,7 @@ public function withoutDisableStrictTypes() : self public function withTreatValuesWithDefaultAsOptional(bool $treatValuesWithDefaultAsOptional) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($treatValuesWithDefaultAsOptional, self::$schema['properties']['treatValuesWithDefaultAsOptional']); + $validator->validate($treatValuesWithDefaultAsOptional, self::$internalValidationSchema['properties']['treatValuesWithDefaultAsOptional']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -192,7 +192,7 @@ public function withoutTreatValuesWithDefaultAsOptional() : self public function withInlineAllofReferences(bool $inlineAllofReferences) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($inlineAllofReferences, self::$schema['properties']['inlineAllofReferences']); + $validator->validate($inlineAllofReferences, self::$internalValidationSchema['properties']['inlineAllofReferences']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -244,7 +244,7 @@ public function withoutTargetPHPVersion() : self public function withNewValidatorClassExpr(string $newValidatorClassExpr) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($newValidatorClassExpr, self::$schema['properties']['newValidatorClassExpr']); + $validator->validate($newValidatorClassExpr, self::$internalValidationSchema['properties']['newValidatorClassExpr']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -355,7 +355,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/AdditionalProps/Output/Foo.php b/tests/Generator/Fixtures/AdditionalProps/Output/Foo.php index 303b4276..e04e57c0 100644 --- a/tests/Generator/Fixtures/AdditionalProps/Output/Foo.php +++ b/tests/Generator/Fixtures/AdditionalProps/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'type' => 'object', 'properties' => [ 'name' => [ @@ -66,7 +66,7 @@ public function getParams() : ?array public function withName(string $name) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($name, self::$schema['properties']['name']); + $validator->validate($name, self::$internalValidationSchema['properties']['name']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -95,7 +95,7 @@ public function withoutName() : self public function withParams(array $params) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($params, self::$schema['properties']['params']); + $validator->validate($params, self::$internalValidationSchema['properties']['params']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -177,7 +177,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/AllOfRef/Output/Foo.php b/tests/Generator/Fixtures/AllOfRef/Output/Foo.php index b52fe6e9..a1565146 100644 --- a/tests/Generator/Fixtures/AllOfRef/Output/Foo.php +++ b/tests/Generator/Fixtures/AllOfRef/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'city', 'street', @@ -89,7 +89,7 @@ public function getCountry() : string public function withCity(string $city) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($city, self::$schema['properties']['city']); + $validator->validate($city, self::$internalValidationSchema['properties']['city']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -107,7 +107,7 @@ public function withCity(string $city) : self public function withStreet(string $street) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($street, self::$schema['properties']['street']); + $validator->validate($street, self::$internalValidationSchema['properties']['street']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -125,7 +125,7 @@ public function withStreet(string $street) : self public function withCountry(string $country) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($country, self::$schema['properties']['country']); + $validator->validate($country, self::$internalValidationSchema['properties']['country']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -187,7 +187,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/Basic/Output/Foo.php b/tests/Generator/Fixtures/Basic/Output/Foo.php index 628bcb29..77b9973c 100644 --- a/tests/Generator/Fixtures/Basic/Output/Foo.php +++ b/tests/Generator/Fixtures/Basic/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'foo_bar', ], @@ -66,7 +66,7 @@ public function getFooBar() : string public function withFoo(string $foo) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($foo, self::$schema['properties']['foo']); + $validator->validate($foo, self::$internalValidationSchema['properties']['foo']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -95,7 +95,7 @@ public function withoutFoo() : self public function withFooBar(string $fooBar) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($fooBar, self::$schema['properties']['foo_bar']); + $validator->validate($fooBar, self::$internalValidationSchema['properties']['foo_bar']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -160,7 +160,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/DefaultValue/Output/Foo.php b/tests/Generator/Fixtures/DefaultValue/Output/Foo.php index 84ab27c2..569ebbcf 100644 --- a/tests/Generator/Fixtures/DefaultValue/Output/Foo.php +++ b/tests/Generator/Fixtures/DefaultValue/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ ], @@ -68,7 +68,7 @@ public function getSkip() : int public function withLimit(int $limit) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($limit, self::$schema['properties']['limit']); + $validator->validate($limit, self::$internalValidationSchema['properties']['limit']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -97,7 +97,7 @@ public function withoutLimit() : self public function withSkip(int $skip) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($skip, self::$schema['properties']['skip']); + $validator->validate($skip, self::$internalValidationSchema['properties']['skip']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -179,7 +179,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/DefaultValueAsOptional/Output/Foo.php b/tests/Generator/Fixtures/DefaultValueAsOptional/Output/Foo.php index 6dd6a460..01821cc1 100644 --- a/tests/Generator/Fixtures/DefaultValueAsOptional/Output/Foo.php +++ b/tests/Generator/Fixtures/DefaultValueAsOptional/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ ], @@ -68,7 +68,7 @@ public function getSkip() : int public function withLimit(int $limit) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($limit, self::$schema['properties']['limit']); + $validator->validate($limit, self::$internalValidationSchema['properties']['limit']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -86,7 +86,7 @@ public function withLimit(int $limit) : self public function withSkip(int $skip) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($skip, self::$schema['properties']['skip']); + $validator->validate($skip, self::$internalValidationSchema['properties']['skip']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -153,7 +153,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/DuplicateWithDifferentCasing/Output/Foo.php b/tests/Generator/Fixtures/DuplicateWithDifferentCasing/Output/Foo.php index d47ed3fb..a2b2603d 100644 --- a/tests/Generator/Fixtures/DuplicateWithDifferentCasing/Output/Foo.php +++ b/tests/Generator/Fixtures/DuplicateWithDifferentCasing/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'fooBar', ], @@ -79,7 +79,7 @@ public function getBar() : ?string public function withFooBar(string $fooBar) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($fooBar, self::$schema['properties']['fooBar']); + $validator->validate($fooBar, self::$internalValidationSchema['properties']['fooBar']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -98,7 +98,7 @@ public function withFooBar(string $fooBar) : self public function withBar(string $bar) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($bar, self::$schema['properties']['bar']); + $validator->validate($bar, self::$internalValidationSchema['properties']['bar']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -182,7 +182,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/JsonFile/Output/Foo.php b/tests/Generator/Fixtures/JsonFile/Output/Foo.php index 0d9e9249..f4a03dc2 100644 --- a/tests/Generator/Fixtures/JsonFile/Output/Foo.php +++ b/tests/Generator/Fixtures/JsonFile/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ '$schema' => 'http://json-schema.org/draft-07/schema#', '$id' => 'http://json-schema.org/draft-07/schema#', 'title' => 'definitions test', @@ -55,7 +55,7 @@ public function getId() : int public function withId(int $id) : self { $validator = new \JsonSchema\Validator(); - $validator->validate($id, self::$schema['properties']['id']); + $validator->validate($id, self::$internalValidationSchema['properties']['id']); if (!$validator->isValid()) { throw new \InvalidArgumentException($validator->getErrors()[0]['message']); } @@ -113,7 +113,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/RefList/Output/Foo.php b/tests/Generator/Fixtures/RefList/Output/Foo.php index 0067c952..5f6426ab 100644 --- a/tests/Generator/Fixtures/RefList/Output/Foo.php +++ b/tests/Generator/Fixtures/RefList/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'foo_bar', ], @@ -120,7 +120,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string { diff --git a/tests/Generator/Fixtures/ReservedNames/Output/Foo.php b/tests/Generator/Fixtures/ReservedNames/Output/Foo.php new file mode 100644 index 00000000..f891fd10 --- /dev/null +++ b/tests/Generator/Fixtures/ReservedNames/Output/Foo.php @@ -0,0 +1,178 @@ + [ + 'schema', + ], + 'properties' => [ + 'foo' => [ + 'type' => 'string', + ], + 'schema' => [ + 'type' => 'string', + ], + ], + ]; + + /** + * @var string|null + */ + private ?string $foo = null; + + /** + * @var string + */ + private string $schema; + + /** + * @param string $schema + */ + public function __construct(string $schema) + { + $this->schema = $schema; + } + + /** + * @return string|null + */ + public function getFoo() : ?string + { + return $this->foo ?? null; + } + + /** + * @return string + */ + public function getSchema() : string + { + return $this->schema; + } + + /** + * @param string $foo + * @return self + */ + public function withFoo(string $foo) : self + { + $validator = new \JsonSchema\Validator(); + $validator->validate($foo, self::$internalValidationSchema['properties']['foo']); + if (!$validator->isValid()) { + throw new \InvalidArgumentException($validator->getErrors()[0]['message']); + } + + $clone = clone $this; + $clone->foo = $foo; + + return $clone; + } + + /** + * @return self + */ + public function withoutFoo() : self + { + $clone = clone $this; + unset($clone->foo); + + return $clone; + } + + /** + * @param string $schema + * @return self + */ + public function withSchema(string $schema) : self + { + $validator = new \JsonSchema\Validator(); + $validator->validate($schema, self::$internalValidationSchema['properties']['schema']); + if (!$validator->isValid()) { + throw new \InvalidArgumentException($validator->getErrors()[0]['message']); + } + + $clone = clone $this; + $clone->schema = $schema; + + return $clone; + } + + /** + * Builds a new instance from an input array + * + * @param array|object $input Input data + * @param bool $validate Set this to false to skip validation; use at own risk + * @return Foo Created instance + * @throws \InvalidArgumentException + */ + public static function buildFromInput(array|object $input, bool $validate = true) : Foo + { + $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; + if ($validate) { + static::validateInput($input); + } + + $foo = null; + if (isset($input->{'foo'})) { + $foo = $input->{'foo'}; + } + $schema = $input->{'schema'}; + + $obj = new self($schema); + $obj->foo = $foo; + return $obj; + } + + /** + * Converts this object back to a simple array that can be JSON-serialized + * + * @return array Converted array + */ + public function toJson() : array + { + $output = []; + if (isset($this->foo)) { + $output['foo'] = $this->foo; + } + $output['schema'] = $this->schema; + + return $output; + } + + /** + * Validates an input array + * + * @param array|object $input Input data + * @param bool $return Return instead of throwing errors + * @return bool Validation result + * @throws \InvalidArgumentException + */ + public static function validateInput(array|object $input, bool $return = false) : bool + { + $validator = new \JsonSchema\Validator(); + $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; + $validator->validate($input, self::$internalValidationSchema); + + if (!$validator->isValid() && !$return) { + $errors = array_map(function(array $e): string { + return $e["property"] . ": " . $e["message"]; + }, $validator->getErrors()); + throw new \InvalidArgumentException(join(", ", $errors)); + } + + return $validator->isValid(); + } + + public function __clone() + { + } +} \ No newline at end of file diff --git a/tests/Generator/Fixtures/ReservedNames/schema.yaml b/tests/Generator/Fixtures/ReservedNames/schema.yaml new file mode 100644 index 00000000..27e3ac12 --- /dev/null +++ b/tests/Generator/Fixtures/ReservedNames/schema.yaml @@ -0,0 +1,7 @@ +required: + - schema +properties: + foo: + type: string + schema: + type: string diff --git a/tests/Generator/Fixtures/UnionCollapsing/Output/Foo.php b/tests/Generator/Fixtures/UnionCollapsing/Output/Foo.php index 9aa02b18..7876c7ec 100644 --- a/tests/Generator/Fixtures/UnionCollapsing/Output/Foo.php +++ b/tests/Generator/Fixtures/UnionCollapsing/Output/Foo.php @@ -11,7 +11,7 @@ class Foo * * @var array */ - private static array $schema = [ + private static array $internalValidationSchema = [ 'required' => [ 'foo', ], @@ -116,7 +116,7 @@ public static function validateInput(array|object $input, bool $return = false) { $validator = new \JsonSchema\Validator(); $input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input; - $validator->validate($input, self::$schema); + $validator->validate($input, self::$internalValidationSchema); if (!$validator->isValid() && !$return) { $errors = array_map(function(array $e): string {