Skip to content

Commit b3fa512

Browse files
Merge pull request #124 from martin-helmich/fix/reserved-names
fix: allow properties named "schema"
2 parents 0952adc + c2d9682 commit b3fa512

16 files changed

Lines changed: 234 additions & 49 deletions

File tree

src/Generator/Generator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public function generateValidateMethod(): MethodGenerator
216216
MethodGenerator::FLAG_PUBLIC | MethodGenerator::FLAG_STATIC,
217217
'$validator = ' . $newValidatorClassExpr . ';' . "\n" .
218218
'$input = is_array($input) ? \\JsonSchema\\Validator::arrayToObjectRecursive($input) : $input;' . "\n" .
219-
'$validator->validate($input, self::$schema);' . "\n\n" .
219+
'$validator->validate($input, self::$internalValidationSchema);' . "\n\n" .
220220
'if (!$validator->isValid() && !$return) {' . "\n" .
221221
($this->generatorRequest->isAtLeastPHP("7.0") ?
222222
' $errors = array_map(function(array $e): string {' . "\n" :
@@ -355,7 +355,7 @@ public function generateSetterMethod(PropertyInterface $property): MethodGenerat
355355
$setterValidation = "";
356356
} else {
357357
$setterValidation = "\$validator = new \JsonSchema\Validator();
358-
\$validator->validate(\$$name, self::\$schema['properties']['$key']);
358+
\$validator->validate(\$$name, self::\$internalValidationSchema['properties']['$key']);
359359
if (!\$validator->isValid()) {
360360
throw new \InvalidArgumentException(\$validator->getErrors()[0]['message']);
361361
}

src/Generator/SchemaToClass.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function schemaToClass(GeneratorRequest $req): void
5151
throw new GeneratorException("cannot generate class for types other than 'object'");
5252
}
5353

54-
$schemaProperty = new PropertyGenerator("schema", $schema, PropertyGenerator::FLAG_PRIVATE | PropertyGenerator::FLAG_STATIC);
54+
$schemaProperty = new PropertyGenerator("internalValidationSchema", $schema, PropertyGenerator::FLAG_PRIVATE | PropertyGenerator::FLAG_STATIC);
5555
$schemaProperty->setDocBlock(new DocBlockGenerator(
5656
"Schema used to validate input for creating instances of this class",
5757
null,

src/Spec/Specification.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Specification
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616
'files',
1717
],
@@ -269,7 +269,7 @@ public static function validateInput(array|object $input, bool $return = false)
269269
{
270270
$validator = new \JsonSchema\Validator();
271271
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
272-
$validator->validate($input, self::$schema);
272+
$validator->validate($input, self::$internalValidationSchema);
273273

274274
if (!$validator->isValid() && !$return) {
275275
$errors = array_map(function(array $e): string {

src/Spec/SpecificationFilesItem.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class SpecificationFilesItem
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616
'input',
1717
'className',
@@ -104,7 +104,7 @@ public function getTargetNamespace() : ?string
104104
public function withInput(string $input) : self
105105
{
106106
$validator = new \JsonSchema\Validator();
107-
$validator->validate($input, self::$schema['properties']['input']);
107+
$validator->validate($input, self::$internalValidationSchema['properties']['input']);
108108
if (!$validator->isValid()) {
109109
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
110110
}
@@ -122,7 +122,7 @@ public function withInput(string $input) : self
122122
public function withClassName(string $className) : self
123123
{
124124
$validator = new \JsonSchema\Validator();
125-
$validator->validate($className, self::$schema['properties']['className']);
125+
$validator->validate($className, self::$internalValidationSchema['properties']['className']);
126126
if (!$validator->isValid()) {
127127
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
128128
}
@@ -140,7 +140,7 @@ public function withClassName(string $className) : self
140140
public function withTargetDirectory(string $targetDirectory) : self
141141
{
142142
$validator = new \JsonSchema\Validator();
143-
$validator->validate($targetDirectory, self::$schema['properties']['targetDirectory']);
143+
$validator->validate($targetDirectory, self::$internalValidationSchema['properties']['targetDirectory']);
144144
if (!$validator->isValid()) {
145145
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
146146
}
@@ -158,7 +158,7 @@ public function withTargetDirectory(string $targetDirectory) : self
158158
public function withTargetNamespace(string $targetNamespace) : self
159159
{
160160
$validator = new \JsonSchema\Validator();
161-
$validator->validate($targetNamespace, self::$schema['properties']['targetNamespace']);
161+
$validator->validate($targetNamespace, self::$internalValidationSchema['properties']['targetNamespace']);
162162
if (!$validator->isValid()) {
163163
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
164164
}
@@ -238,7 +238,7 @@ public static function validateInput(array|object $input, bool $return = false)
238238
{
239239
$validator = new \JsonSchema\Validator();
240240
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
241-
$validator->validate($input, self::$schema);
241+
$validator->validate($input, self::$internalValidationSchema);
242242

243243
if (!$validator->isValid() && !$return) {
244244
$errors = array_map(function(array $e): string {

src/Spec/SpecificationOptions.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class SpecificationOptions
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'properties' => [
1616
'disableStrictTypes' => [
1717
'type' => 'boolean',
@@ -134,7 +134,7 @@ public function getNewValidatorClassExpr() : string
134134
public function withDisableStrictTypes(bool $disableStrictTypes) : self
135135
{
136136
$validator = new \JsonSchema\Validator();
137-
$validator->validate($disableStrictTypes, self::$schema['properties']['disableStrictTypes']);
137+
$validator->validate($disableStrictTypes, self::$internalValidationSchema['properties']['disableStrictTypes']);
138138
if (!$validator->isValid()) {
139139
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
140140
}
@@ -163,7 +163,7 @@ public function withoutDisableStrictTypes() : self
163163
public function withTreatValuesWithDefaultAsOptional(bool $treatValuesWithDefaultAsOptional) : self
164164
{
165165
$validator = new \JsonSchema\Validator();
166-
$validator->validate($treatValuesWithDefaultAsOptional, self::$schema['properties']['treatValuesWithDefaultAsOptional']);
166+
$validator->validate($treatValuesWithDefaultAsOptional, self::$internalValidationSchema['properties']['treatValuesWithDefaultAsOptional']);
167167
if (!$validator->isValid()) {
168168
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
169169
}
@@ -192,7 +192,7 @@ public function withoutTreatValuesWithDefaultAsOptional() : self
192192
public function withInlineAllofReferences(bool $inlineAllofReferences) : self
193193
{
194194
$validator = new \JsonSchema\Validator();
195-
$validator->validate($inlineAllofReferences, self::$schema['properties']['inlineAllofReferences']);
195+
$validator->validate($inlineAllofReferences, self::$internalValidationSchema['properties']['inlineAllofReferences']);
196196
if (!$validator->isValid()) {
197197
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
198198
}
@@ -244,7 +244,7 @@ public function withoutTargetPHPVersion() : self
244244
public function withNewValidatorClassExpr(string $newValidatorClassExpr) : self
245245
{
246246
$validator = new \JsonSchema\Validator();
247-
$validator->validate($newValidatorClassExpr, self::$schema['properties']['newValidatorClassExpr']);
247+
$validator->validate($newValidatorClassExpr, self::$internalValidationSchema['properties']['newValidatorClassExpr']);
248248
if (!$validator->isValid()) {
249249
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
250250
}
@@ -355,7 +355,7 @@ public static function validateInput(array|object $input, bool $return = false)
355355
{
356356
$validator = new \JsonSchema\Validator();
357357
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
358-
$validator->validate($input, self::$schema);
358+
$validator->validate($input, self::$internalValidationSchema);
359359

360360
if (!$validator->isValid() && !$return) {
361361
$errors = array_map(function(array $e): string {

tests/Generator/Fixtures/AdditionalProps/Output/Foo.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Foo
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'type' => 'object',
1616
'properties' => [
1717
'name' => [
@@ -66,7 +66,7 @@ public function getParams() : ?array
6666
public function withName(string $name) : self
6767
{
6868
$validator = new \JsonSchema\Validator();
69-
$validator->validate($name, self::$schema['properties']['name']);
69+
$validator->validate($name, self::$internalValidationSchema['properties']['name']);
7070
if (!$validator->isValid()) {
7171
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
7272
}
@@ -95,7 +95,7 @@ public function withoutName() : self
9595
public function withParams(array $params) : self
9696
{
9797
$validator = new \JsonSchema\Validator();
98-
$validator->validate($params, self::$schema['properties']['params']);
98+
$validator->validate($params, self::$internalValidationSchema['properties']['params']);
9999
if (!$validator->isValid()) {
100100
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
101101
}
@@ -177,7 +177,7 @@ public static function validateInput(array|object $input, bool $return = false)
177177
{
178178
$validator = new \JsonSchema\Validator();
179179
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
180-
$validator->validate($input, self::$schema);
180+
$validator->validate($input, self::$internalValidationSchema);
181181

182182
if (!$validator->isValid() && !$return) {
183183
$errors = array_map(function(array $e): string {

tests/Generator/Fixtures/AllOfRef/Output/Foo.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Foo
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616
'city',
1717
'street',
@@ -89,7 +89,7 @@ public function getCountry() : string
8989
public function withCity(string $city) : self
9090
{
9191
$validator = new \JsonSchema\Validator();
92-
$validator->validate($city, self::$schema['properties']['city']);
92+
$validator->validate($city, self::$internalValidationSchema['properties']['city']);
9393
if (!$validator->isValid()) {
9494
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
9595
}
@@ -107,7 +107,7 @@ public function withCity(string $city) : self
107107
public function withStreet(string $street) : self
108108
{
109109
$validator = new \JsonSchema\Validator();
110-
$validator->validate($street, self::$schema['properties']['street']);
110+
$validator->validate($street, self::$internalValidationSchema['properties']['street']);
111111
if (!$validator->isValid()) {
112112
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
113113
}
@@ -125,7 +125,7 @@ public function withStreet(string $street) : self
125125
public function withCountry(string $country) : self
126126
{
127127
$validator = new \JsonSchema\Validator();
128-
$validator->validate($country, self::$schema['properties']['country']);
128+
$validator->validate($country, self::$internalValidationSchema['properties']['country']);
129129
if (!$validator->isValid()) {
130130
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
131131
}
@@ -187,7 +187,7 @@ public static function validateInput(array|object $input, bool $return = false)
187187
{
188188
$validator = new \JsonSchema\Validator();
189189
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
190-
$validator->validate($input, self::$schema);
190+
$validator->validate($input, self::$internalValidationSchema);
191191

192192
if (!$validator->isValid() && !$return) {
193193
$errors = array_map(function(array $e): string {

tests/Generator/Fixtures/Basic/Output/Foo.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Foo
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616
'foo_bar',
1717
],
@@ -66,7 +66,7 @@ public function getFooBar() : string
6666
public function withFoo(string $foo) : self
6767
{
6868
$validator = new \JsonSchema\Validator();
69-
$validator->validate($foo, self::$schema['properties']['foo']);
69+
$validator->validate($foo, self::$internalValidationSchema['properties']['foo']);
7070
if (!$validator->isValid()) {
7171
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
7272
}
@@ -95,7 +95,7 @@ public function withoutFoo() : self
9595
public function withFooBar(string $fooBar) : self
9696
{
9797
$validator = new \JsonSchema\Validator();
98-
$validator->validate($fooBar, self::$schema['properties']['foo_bar']);
98+
$validator->validate($fooBar, self::$internalValidationSchema['properties']['foo_bar']);
9999
if (!$validator->isValid()) {
100100
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
101101
}
@@ -160,7 +160,7 @@ public static function validateInput(array|object $input, bool $return = false)
160160
{
161161
$validator = new \JsonSchema\Validator();
162162
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
163-
$validator->validate($input, self::$schema);
163+
$validator->validate($input, self::$internalValidationSchema);
164164

165165
if (!$validator->isValid() && !$return) {
166166
$errors = array_map(function(array $e): string {

tests/Generator/Fixtures/DefaultValue/Output/Foo.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Foo
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616

1717
],
@@ -68,7 +68,7 @@ public function getSkip() : int
6868
public function withLimit(int $limit) : self
6969
{
7070
$validator = new \JsonSchema\Validator();
71-
$validator->validate($limit, self::$schema['properties']['limit']);
71+
$validator->validate($limit, self::$internalValidationSchema['properties']['limit']);
7272
if (!$validator->isValid()) {
7373
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
7474
}
@@ -97,7 +97,7 @@ public function withoutLimit() : self
9797
public function withSkip(int $skip) : self
9898
{
9999
$validator = new \JsonSchema\Validator();
100-
$validator->validate($skip, self::$schema['properties']['skip']);
100+
$validator->validate($skip, self::$internalValidationSchema['properties']['skip']);
101101
if (!$validator->isValid()) {
102102
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
103103
}
@@ -179,7 +179,7 @@ public static function validateInput(array|object $input, bool $return = false)
179179
{
180180
$validator = new \JsonSchema\Validator();
181181
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
182-
$validator->validate($input, self::$schema);
182+
$validator->validate($input, self::$internalValidationSchema);
183183

184184
if (!$validator->isValid() && !$return) {
185185
$errors = array_map(function(array $e): string {

tests/Generator/Fixtures/DefaultValueAsOptional/Output/Foo.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Foo
1111
*
1212
* @var array
1313
*/
14-
private static array $schema = [
14+
private static array $internalValidationSchema = [
1515
'required' => [
1616

1717
],
@@ -68,7 +68,7 @@ public function getSkip() : int
6868
public function withLimit(int $limit) : self
6969
{
7070
$validator = new \JsonSchema\Validator();
71-
$validator->validate($limit, self::$schema['properties']['limit']);
71+
$validator->validate($limit, self::$internalValidationSchema['properties']['limit']);
7272
if (!$validator->isValid()) {
7373
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
7474
}
@@ -86,7 +86,7 @@ public function withLimit(int $limit) : self
8686
public function withSkip(int $skip) : self
8787
{
8888
$validator = new \JsonSchema\Validator();
89-
$validator->validate($skip, self::$schema['properties']['skip']);
89+
$validator->validate($skip, self::$internalValidationSchema['properties']['skip']);
9090
if (!$validator->isValid()) {
9191
throw new \InvalidArgumentException($validator->getErrors()[0]['message']);
9292
}
@@ -153,7 +153,7 @@ public static function validateInput(array|object $input, bool $return = false)
153153
{
154154
$validator = new \JsonSchema\Validator();
155155
$input = is_array($input) ? \JsonSchema\Validator::arrayToObjectRecursive($input) : $input;
156-
$validator->validate($input, self::$schema);
156+
$validator->validate($input, self::$internalValidationSchema);
157157

158158
if (!$validator->isValid() && !$return) {
159159
$errors = array_map(function(array $e): string {

0 commit comments

Comments
 (0)