Skip to content

Commit b6da161

Browse files
committed
further
1 parent be7068b commit b6da161

21 files changed

+134
-28
lines changed

src/Items.php renamed to src/ArrayFlavour/Items.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<?php
22

3-
namespace Yaoi\Schema;
3+
namespace Yaoi\Schema\ArrayFlavour;
44

55

6-
class Items extends AbstractConstraint implements Constraint
6+
use Yaoi\Schema\AbstractConstraint;
7+
use Yaoi\Schema\Schema;
8+
9+
class Items extends AbstractConstraint
710
{
811
const KEY = 'items';
912

src/ArrayFlavour/MinItems.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\ArrayFlavour;
4+
5+
6+
use Yaoi\Schema\AbstractConstraint;
7+
use Yaoi\Schema\Validator;
8+
9+
class MinItems extends AbstractConstraint implements Validator
10+
{
11+
/** @var int */
12+
private $minItems;
13+
public function __construct($minItems)
14+
{
15+
$this->minItems = $minItems;
16+
}
17+
18+
19+
public function isValid($data)
20+
{
21+
return count($data) >= $this->minItems;
22+
}
23+
24+
}

src/CodeBuilder/PHPCodeBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Yaoi\Schema\CodeBuilder\Templates\ClassStructurePhp;
66
use Yaoi\Schema\Exception;
7-
use Yaoi\Schema\Properties;
7+
use Yaoi\Schema\ObjectFlavour\Properties;
88
use Yaoi\Schema\Ref;
99
use Yaoi\Schema\Schema;
1010
use Yaoi\Schema\Types\ArrayType;

src/CodeBuilder/Templates/ClassStructurePhp.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
use Yaoi\Schema\Base;
77
use Yaoi\Schema\CodeBuilder\PHPCodeBuilder;
8-
use Yaoi\Schema\Properties;
8+
use Yaoi\Schema\ObjectFlavour\Properties;
99
use Yaoi\Schema\Schema;
1010

1111
/**

src/AdditionalProperties.php renamed to src/ObjectFlavour/AdditionalProperties.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
<?php
22

3-
namespace Yaoi\Schema;
3+
namespace Yaoi\Schema\ObjectFlavour;
44

55

6+
use Yaoi\Schema\AbstractConstraint;
7+
use Yaoi\Schema\Constraint;
8+
use Yaoi\Schema\Schema;
9+
610
class AdditionalProperties extends AbstractConstraint implements Constraint
711
{
812
const KEY = 'additionalProperties';

src/Properties.php renamed to src/ObjectFlavour/Properties.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
<?php
22

3-
namespace Yaoi\Schema;
3+
namespace Yaoi\Schema\ObjectFlavour;
44

55

6+
use Yaoi\Schema\AbstractConstraint;
7+
use Yaoi\Schema\Constraint;
8+
use Yaoi\Schema\Exception;
9+
use Yaoi\Schema\Schema;
10+
611
class Properties extends AbstractConstraint implements Constraint
712
{
813
const KEY = 'properties';

src/Schema.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
namespace Yaoi\Schema;
44

55

6+
use Yaoi\Schema\ArrayFlavour\Items;
67
use Yaoi\Schema\Logic\AllOf;
8+
use Yaoi\Schema\ObjectFlavour\AdditionalProperties;
9+
use Yaoi\Schema\ObjectFlavour\Properties;
710

811
/**
912
* @method static Schema create($schemaValue = null, Schema $parentSchema = null)
@@ -85,6 +88,9 @@ public function __construct($schemaValue = null, Schema $parentSchema = null)
8588
case AdditionalProperties::KEY:
8689
$constraint = new AdditionalProperties($constraintData, $this);
8790
break;
91+
case Items::KEY:
92+
$constraint = new Items($constraintData, $this);
93+
break;
8894
case Ref::KEY:
8995
$constraint = new Ref($constraintData, $this);
9096
break;

src/Structure/ClassStructure.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Yaoi\Schema\Structure;
44

55
use Yaoi\Schema\Base;
6-
use Yaoi\Schema\Properties;
6+
use Yaoi\Schema\ObjectFlavour\Properties;
77
use Yaoi\Schema\Schema;
88
use Yaoi\Schema\Types\ObjectType;
99

src/Structure/ClassStructureContract.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Yaoi\Schema\Structure;
44

5-
use Yaoi\Schema\Properties;
5+
use Yaoi\Schema\ObjectFlavour\Properties;
66
use Yaoi\Schema\Schema;
77

88
interface ClassStructureContract

src/Type.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ public static function factory($schemaValue, Schema $parentSchema = null)
2121
}
2222

2323
switch ($schemaValue) {
24-
case ObjectType::TYPE_OBJECT:
24+
case ObjectType::TYPE:
2525
return new ObjectType($parentSchema);
26-
case StringType::TYPE_STRING:
26+
case StringType::TYPE:
2727
return new StringType($parentSchema);
28-
case IntegerType::TYPE_INTEGER:
28+
case IntegerType::TYPE:
2929
return new IntegerType($parentSchema);
30-
case NumberType::TYPE_NUMBER:
30+
case NumberType::TYPE:
3131
return new NumberType($parentSchema);
32-
case BooleanType::TYPE_BOOLEAN:
32+
case BooleanType::TYPE:
3333
return new BooleanType($parentSchema);
34-
case ArrayType::TYPE_ARRAY:
34+
case ArrayType::TYPE:
3535
return new ArrayType($parentSchema);
3636
default:
3737
throw new Exception('Unknown type ' . $schemaValue);

0 commit comments

Comments
 (0)