Skip to content

Commit 0fdc81a

Browse files
committed
wiping out redundant stuff
1 parent 0275100 commit 0fdc81a

27 files changed

+189
-339
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ JSON;
6464

6565
Load it
6666
```php
67-
$schema = SchemaLoader::create()->readSchema(json_decode($schemaJson));
67+
$schema = Schema::import(json_decode($schemaJson));
6868
```
6969

7070
Validate data
7171
```php
72-
$schema->import(json_decode(<<<'JSON'
72+
$schema->in(json_decode(<<<'JSON'
7373
{
7474
"id": 1,
7575
"name":"John Doe",

src/ProcessingOptions.php renamed to src/Context.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
namespace Swaggest\JsonSchema;
44

5-
class ProcessingOptions extends MagicMap
5+
class Context extends MagicMap
66
{
7-
8-
97
public $import = true;
108
/** @var DataPreProcessor */
119
public $dataPreProcessor;
@@ -40,7 +38,7 @@ public function getDataPreProcessor()
4038

4139
/**
4240
* @param DataPreProcessor $dataPreProcessor
43-
* @return ProcessingOptions
41+
* @return Context
4442
*/
4543
public function setDataPreProcessor($dataPreProcessor)
4644
{
@@ -58,7 +56,7 @@ public function getRemoteRefProvider()
5856

5957
/**
6058
* @param RemoteRefProvider $remoteRefProvider
61-
* @return ProcessingOptions
59+
* @return Context
6260
*/
6361
public function setRemoteRefProvider($remoteRefProvider)
6462
{

src/JsonSchema.php

Lines changed: 49 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44

55
use Swaggest\JsonSchema\Constraint\Properties;
66
use Swaggest\JsonSchema\Structure\ClassStructure;
7-
use Swaggest\JsonSchema\Structure\SchemaStructure;
87

98

10-
class JsonSchema extends SchemaStructure {
9+
class JsonSchema extends ClassStructure {
1110
/** @var string */
1211
public $id;
1312

@@ -115,69 +114,69 @@ class JsonSchema extends SchemaStructure {
115114
*/
116115
public static function setUpProperties($properties, Schema $ownerSchema)
117116
{
118-
$properties->id = JsonSchema::string();
119-
$properties->schema = JsonSchema::string();
117+
$properties->id = Schema::string();
118+
$properties->schema = Schema::string();
120119
$ownerSchema->addPropertyMapping('$schema', self::names()->schema);
121-
$properties->title = JsonSchema::string();
122-
$properties->description = JsonSchema::string();
120+
$properties->title = Schema::string();
121+
$properties->description = Schema::string();
123122
$properties->default = new Schema();
124-
$properties->multipleOf = JsonSchema::number();
123+
$properties->multipleOf = Schema::number();
125124
$properties->multipleOf->minimum = 0;
126125
$properties->multipleOf->exclusiveMinimum = true;
127-
$properties->maximum = JsonSchema::number();
128-
$properties->exclusiveMaximum = JsonSchema::boolean();
129-
$properties->minimum = JsonSchema::number();
130-
$properties->exclusiveMinimum = JsonSchema::boolean();
131-
$properties->maxLength = JsonSchema::integer();
126+
$properties->maximum = Schema::number();
127+
$properties->exclusiveMaximum = Schema::boolean();
128+
$properties->minimum = Schema::number();
129+
$properties->exclusiveMinimum = Schema::boolean();
130+
$properties->maxLength = Schema::integer();
132131
$properties->maxLength->minimum = 0;
133132
$properties->minLength = new Schema();
134-
$properties->minLength->allOf[0] = JsonSchema::integer();
133+
$properties->minLength->allOf[0] = Schema::integer();
135134
$properties->minLength->allOf[0]->minimum = 0;
136135
$properties->minLength->allOf[1] = new Schema();
137-
$properties->pattern = JsonSchema::string();
136+
$properties->pattern = Schema::string();
138137
$properties->additionalItems = new Schema();
139-
$properties->additionalItems->anyOf[0] = JsonSchema::boolean();
140-
$properties->additionalItems->anyOf[1] = JsonSchema::schema();
138+
$properties->additionalItems->anyOf[0] = Schema::boolean();
139+
$properties->additionalItems->anyOf[1] = Schema::schema();
141140
$properties->items = new Schema();
142-
$properties->items->anyOf[0] = JsonSchema::schema();
143-
$properties->items->anyOf[1] = JsonSchema::arr();
144-
$properties->items->anyOf[1]->items = JsonSchema::schema();
141+
$properties->items->anyOf[0] = Schema::schema();
142+
$properties->items->anyOf[1] = Schema::arr();
143+
$properties->items->anyOf[1]->items = Schema::schema();
145144
$properties->items->anyOf[1]->minItems = 1;
146-
$properties->maxItems = JsonSchema::integer();
145+
$properties->maxItems = Schema::integer();
147146
$properties->maxItems->minimum = 0;
148147
$properties->minItems = new Schema();
149-
$properties->minItems->allOf[0] = JsonSchema::integer();
148+
$properties->minItems->allOf[0] = Schema::integer();
150149
$properties->minItems->allOf[0]->minimum = 0;
151150
$properties->minItems->allOf[1] = new Schema();
152-
$properties->uniqueItems = JsonSchema::boolean();
153-
$properties->maxProperties = JsonSchema::integer();
151+
$properties->uniqueItems = Schema::boolean();
152+
$properties->maxProperties = Schema::integer();
154153
$properties->maxProperties->minimum = 0;
155154
$properties->minProperties = new Schema();
156-
$properties->minProperties->allOf[0] = JsonSchema::integer();
155+
$properties->minProperties->allOf[0] = Schema::integer();
157156
$properties->minProperties->allOf[0]->minimum = 0;
158157
$properties->minProperties->allOf[1] = new Schema();
159-
$properties->required = JsonSchema::arr();
160-
$properties->required->items = JsonSchema::string();
158+
$properties->required = Schema::arr();
159+
$properties->required->items = Schema::string();
161160
$properties->required->uniqueItems = true;
162161
$properties->required->minItems = 1;
163162
$properties->additionalProperties = new Schema();
164-
$properties->additionalProperties->anyOf[0] = JsonSchema::boolean();
165-
$properties->additionalProperties->anyOf[1] = JsonSchema::schema();
166-
$properties->definitions = JsonSchema::object();
167-
$properties->definitions->additionalProperties = JsonSchema::schema();
168-
$properties->properties = JsonSchema::object();
169-
$properties->properties->additionalProperties = JsonSchema::schema();
170-
$properties->patternProperties = JsonSchema::object();
171-
$properties->patternProperties->additionalProperties = JsonSchema::schema();
172-
$properties->dependencies = JsonSchema::object();
173-
//$properties->dependencies->additionalProperties = JsonSchema::schema();
163+
$properties->additionalProperties->anyOf[0] = Schema::boolean();
164+
$properties->additionalProperties->anyOf[1] = Schema::schema();
165+
$properties->definitions = Schema::object();
166+
$properties->definitions->additionalProperties = Schema::schema();
167+
$properties->properties = Schema::object();
168+
$properties->properties->additionalProperties = Schema::schema();
169+
$properties->patternProperties = Schema::object();
170+
$properties->patternProperties->additionalProperties = Schema::schema();
171+
$properties->dependencies = Schema::object();
172+
//$properties->dependencies->additionalProperties = Schema::schema();
174173
$properties->dependencies->additionalProperties = new Schema();
175-
$properties->dependencies->additionalProperties->anyOf[0] = JsonSchema::schema();
176-
$properties->dependencies->additionalProperties->anyOf[1] = JsonSchema::arr();
177-
$properties->dependencies->additionalProperties->anyOf[1]->items = JsonSchema::string();
174+
$properties->dependencies->additionalProperties->anyOf[0] = Schema::schema();
175+
$properties->dependencies->additionalProperties->anyOf[1] = Schema::arr();
176+
$properties->dependencies->additionalProperties->anyOf[1]->items = Schema::string();
178177
$properties->dependencies->additionalProperties->anyOf[1]->uniqueItems = true;
179178
$properties->dependencies->additionalProperties->anyOf[1]->minItems = 1;
180-
$properties->enum = JsonSchema::arr();
179+
$properties->enum = Schema::arr();
181180
$properties->enum->uniqueItems = true;
182181
$properties->enum->minItems = 1;
183182
$properties->type = new Schema();
@@ -191,7 +190,7 @@ public static function setUpProperties($properties, Schema $ownerSchema)
191190
5 => 'object',
192191
6 => 'string',
193192
);
194-
$properties->type->anyOf[1] = JsonSchema::arr();
193+
$properties->type->anyOf[1] = Schema::arr();
195194
$properties->type->anyOf[1]->items = new Schema();
196195
$properties->type->anyOf[1]->items->enum = array (
197196
0 => 'array',
@@ -204,19 +203,19 @@ public static function setUpProperties($properties, Schema $ownerSchema)
204203
);
205204
$properties->type->anyOf[1]->uniqueItems = true;
206205
$properties->type->anyOf[1]->minItems = 1;
207-
$properties->format = JsonSchema::string();
208-
$properties->ref = JsonSchema::string();
206+
$properties->format = Schema::string();
207+
$properties->ref = Schema::string();
209208
$ownerSchema->addPropertyMapping('$ref', self::names()->ref);
210-
$properties->allOf = JsonSchema::arr();
211-
$properties->allOf->items = JsonSchema::schema();
209+
$properties->allOf = Schema::arr();
210+
$properties->allOf->items = Schema::schema();
212211
$properties->allOf->minItems = 1;
213-
$properties->anyOf = JsonSchema::arr();
214-
$properties->anyOf->items = JsonSchema::schema();
212+
$properties->anyOf = Schema::arr();
213+
$properties->anyOf->items = Schema::schema();
215214
$properties->anyOf->minItems = 1;
216-
$properties->oneOf = JsonSchema::arr();
217-
$properties->oneOf->items = JsonSchema::schema();
215+
$properties->oneOf = Schema::arr();
216+
$properties->oneOf->items = Schema::schema();
218217
$properties->oneOf->minItems = 1;
219-
$properties->not = JsonSchema::schema();
218+
$properties->not = Schema::schema();
220219
$ownerSchema->type = 'object';
221220
$ownerSchema->dependencies = array (
222221
'exclusiveMaximum' =>

src/Schema.php

Lines changed: 7 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* Class Schema
2323
* @package Swaggest\JsonSchema
2424
*/
25-
class Schema extends ObjectItem
25+
class Schema extends JsonSchema
2626
{
2727
const SCHEMA_DRAFT_04_URL = 'http://json-schema.org/draft-04/schema';
2828

@@ -40,67 +40,21 @@ public function __construct()
4040
}
4141
//*/
4242

43-
/** @var Type */
44-
public $type;
45-
4643
// Object
4744
/** @var Properties|Schema[] */
4845
public $properties;
4946
/** @var Schema|bool */
5047
public $additionalProperties;
5148
/** @var Schema[] */
5249
public $patternProperties;
53-
/** @var string[] */
54-
public $required;
5550
/** @var string[][]|Schema[] */
5651
public $dependencies;
57-
/** @var int */
58-
public $minProperties;
59-
/** @var int */
60-
public $maxProperties;
6152

6253
// Array
6354
/** @var Schema|Schema[] */
6455
public $items;
6556
/** @var Schema|bool */
6657
public $additionalItems;
67-
/** @var bool */
68-
public $uniqueItems;
69-
/** @var int */
70-
public $minItems;
71-
/** @var int */
72-
public $maxItems;
73-
74-
// Reference
75-
/** @var string */
76-
public $ref;
77-
78-
// Enum
79-
/** @var array */
80-
public $enum;
81-
82-
// Number
83-
/** @var int */
84-
public $maximum;
85-
/** @var bool */
86-
public $exclusiveMaximum;
87-
/** @var int */
88-
public $minimum;
89-
/** @var bool */
90-
public $exclusiveMinimum;
91-
/** @var float|int */
92-
public $multipleOf;
93-
94-
95-
// String
96-
/** @var string */
97-
public $pattern;
98-
/** @var int */
99-
public $minLength;
100-
/** @var int */
101-
public $maxLength;
102-
/** @var string */
103-
public $format;
10458

10559
const FORMAT_DATE_TIME = 'date-time'; // todo implement
10660

@@ -128,7 +82,7 @@ public function addPropertyMapping($dataName, $propertyName)
12882
return $this;
12983
}
13084

131-
private function preProcessReferences($data, ProcessingOptions $options = null)
85+
private function preProcessReferences($data, Context $options = null)
13286
{
13387
if (is_array($data)) {
13488
foreach ($data as $key => $item) {
@@ -150,10 +104,10 @@ private function preProcessReferences($data, ProcessingOptions $options = null)
150104
}
151105
}
152106

153-
public function import($data, ProcessingOptions $options = null)
107+
public function in($data, Context $options = null)
154108
{
155109
if ($options === null) {
156-
$options = new ProcessingOptions();
110+
$options = new Context();
157111
}
158112

159113
$options->import = true;
@@ -171,18 +125,18 @@ public function import($data, ProcessingOptions $options = null)
171125
}
172126

173127

174-
public function export($data, ProcessingOptions $options = null)
128+
public function out($data, Context $options = null)
175129
{
176130
if ($options === null) {
177-
$options = new ProcessingOptions();
131+
$options = new Context();
178132
}
179133

180134
$options->circularReferences = new \SplObjectStorage();
181135
$options->import = false;
182136
return $this->process($data, $options);
183137
}
184138

185-
public function process($data, ProcessingOptions $options, $path = '#', $result = null)
139+
public function process($data, Context $options, $path = '#', $result = null)
186140
{
187141

188142
$import = $options->import;

src/Structure/ClassStructure.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace Swaggest\JsonSchema\Structure;
44

55
use Swaggest\JsonSchema\Constraint\Properties;
6+
use Swaggest\JsonSchema\Context;
67
use Swaggest\JsonSchema\NameMirror;
7-
use Swaggest\JsonSchema\ProcessingOptions;
88
use Swaggest\JsonSchema\Schema;
99

1010
abstract class ClassStructure extends ObjectItem implements ClassStructureContract
@@ -59,22 +59,22 @@ public static function properties()
5959

6060
/**
6161
* @param $data
62-
* @param ProcessingOptions $options
62+
* @param Context $options
6363
* @return static
6464
*/
65-
public static function import($data, ProcessingOptions $options = null)
65+
public static function import($data, Context $options = null)
6666
{
67-
return static::schema()->import($data, $options);
67+
return static::schema()->in($data, $options);
6868
}
6969

7070
/**
7171
* @param $data
72-
* @param ProcessingOptions $options
72+
* @param Context $options
7373
* @return mixed
7474
*/
75-
public static function export($data, ProcessingOptions $options = null)
75+
public static function export($data, Context $options = null)
7676
{
77-
return static::schema()->export($data, $options);
77+
return static::schema()->out($data, $options);
7878
}
7979

8080
/**
@@ -139,7 +139,7 @@ public function __set($name, $column) // todo nested schemas
139139
{
140140
if ($this->__validateOnSet) {
141141
if ($property = static::schema()->properties[$name]) {
142-
$property->export($column);
142+
$property->out($column);
143143
}
144144
}
145145
$this->__arrayOfData[$name] = $column;

0 commit comments

Comments
 (0)