Skip to content

Commit ee2f8e1

Browse files
authored
Merge pull request #50 from bim-g/version_boss
[UPD] Refactoring app structure
2 parents 7b6f7bd + e62c49f commit ee2f8e1

15 files changed

+156
-78
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
/nbproject/private/
22
/.idea
33
.idea
4-
vendor
4+
vendor
5+
.phpunit.result.cache
6+
.phpunit-watcher.yml

.phpunit.result.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":1,"defects":{"Test\\Schema\\SCHStringTest::testStringObject":4,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":3,"Test\\Schema\\SCHStringTest::testStringEmailKey":3,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringURLKey":3,"Test\\Schema\\StringSchemaTest::testStringMatchKey":4,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":3,"Test\\Schema\\NumberSchemaTest::testStringIsObject":4,"Test\\Schema\\NumberSchemaTest::testRequiredKey":3,"Test\\Schema\\DateSchemaTest::testDateTodayKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":4,"Test\\Script\\StringValidationTest::testStringIsObject":4,"Test\\Script\\StringValidationTest::testStringObjectException":4,"Test\\Script\\StringValidationTest::testException":3,"Test\\Script\\StringValidationTest::testStringMin":3,"Test\\Script\\StringValidationTest::testStringMaxError":4,"Test\\Script\\StringValidationTest::testStringMaxSuccess":3,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":4,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":4,"Test\\Script\\StringValidationTest::testStringMinError":4,"Test\\Script\\StringValidationTest::testStringMinSuccess":3,"Test\\Script\\StringValidationTest::testStringEmailError":3,"Test\\Script\\StringValidationTest::testStringURLSuccess":3,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredErrors":3,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":4,"Test\\Script\\StringValidationTest::testStringMatchSuccess":3,"Test\\Script\\StringValidationTest::testStringMatchErrors":3},"times":{"Test\\Schema\\SCHStringTest::testStringObject":0.021,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":0,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":0.01,"Test\\Schema\\SCHStringTest::testStringEmailKey":0.001,"Test\\Schema\\SCHStringTest::testStringIsObject":0.008,"Test\\Schema\\StringSchemaTest::testStringIsObject":0.014,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\StringSchemaTest::testStringEmailKey":0.001,"Test\\Schema\\StringSchemaTest::testStringURLKey":0,"Test\\Schema\\StringSchemaTest::testStringMatchKey":0,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":0,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":0.001,"Test\\Schema\\NumberSchemaTest::testStringIsObject":0.009,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\NumberSchemaTest::testRequiredKey":0.001,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":0,"Test\\Schema\\DateSchemaTest::testStringIsObject":0.011,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\DateSchemaTest::testDateNowKey":0.001,"Test\\Schema\\DateSchemaTest::testDateTodayKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsObject":0.03,"Test\\Schema\\BooleanSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":0.006,"Test\\Schema\\BooleanSchemaTest::testBooleanIsValidKey":0.002,"Test\\Script\\StringValidationTest::testStringIsObject":0,"Test\\Script\\StringValidationTest::testStringObjectException":0.006,"Test\\Script\\StringValidationTest::testException":0.007,"Test\\Script\\StringValidationTest::testStringMin":0.001,"Test\\Script\\StringValidationTest::testStringValidationException":0.006,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":0,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":0.007,"Test\\Script\\StringValidationTest::testStringMinError":0,"Test\\Script\\StringValidationTest::testStringMinSuccess":0,"Test\\Script\\StringValidationTest::testStringMaxError":0,"Test\\Script\\StringValidationTest::testStringMaxSuccess":0,"Test\\Script\\StringValidationTest::testStringEmailError":0.001,"Test\\Script\\StringValidationTest::testStringEmailSuccess":0,"Test\\Script\\StringValidationTest::testStringUrlError":0.008,"Test\\Script\\StringValidationTest::testStringURLError":0,"Test\\Script\\StringValidationTest::testStringURLSuccess":0,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":0.001,"Test\\Script\\StringValidationTest::testStringRequiredErrors":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknow":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":0,"Test\\Script\\StringValidationTest::testStringMatchErrors":0,"Test\\Script\\StringValidationTest::testStringMatchSuccess":0,"Test\\Script\\StringValidationTest::testStringValidationFieldNotDefinedException":0}}
1+
{"version":1,"defects":{"Test\\Schema\\SCHStringTest::testStringObject":4,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":3,"Test\\Schema\\SCHStringTest::testStringEmailKey":3,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringURLKey":4,"Test\\Schema\\StringSchemaTest::testStringMatchKey":4,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":4,"Test\\Schema\\NumberSchemaTest::testStringIsObject":4,"Test\\Schema\\NumberSchemaTest::testRequiredKey":4,"Test\\Schema\\DateSchemaTest::testDateTodayKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":4,"Test\\Script\\StringValidationTest::testStringIsObject":4,"Test\\Script\\StringValidationTest::testStringObjectException":4,"Test\\Script\\StringValidationTest::testException":3,"Test\\Script\\StringValidationTest::testStringMin":3,"Test\\Script\\StringValidationTest::testStringMaxError":4,"Test\\Script\\StringValidationTest::testStringMaxSuccess":3,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":4,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":4,"Test\\Script\\StringValidationTest::testStringMinError":4,"Test\\Script\\StringValidationTest::testStringMinSuccess":3,"Test\\Script\\StringValidationTest::testStringEmailError":3,"Test\\Script\\StringValidationTest::testStringURLSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredErrors":3,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":4,"Test\\Script\\StringValidationTest::testStringMatchSuccess":3,"Test\\Script\\StringValidationTest::testStringMatchErrors":3,"Test\\Schema\\StringSchemaTest::testStringIsObject":4,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringEmailKey":4,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":4,"Test\\Schema\\DateSchemaTest::testStringIsObject":4,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\DateSchemaTest::testDateNowKey":4,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":4},"times":{"Test\\Schema\\SCHStringTest::testStringObject":0.021,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":0,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":0.01,"Test\\Schema\\SCHStringTest::testStringEmailKey":0.001,"Test\\Schema\\SCHStringTest::testStringIsObject":0.008,"Test\\Schema\\StringSchemaTest::testStringIsObject":0.009,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\StringSchemaTest::testStringEmailKey":0.001,"Test\\Schema\\StringSchemaTest::testStringURLKey":0,"Test\\Schema\\StringSchemaTest::testStringMatchKey":0,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":0,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":0,"Test\\Schema\\NumberSchemaTest::testStringIsObject":0.008,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\NumberSchemaTest::testRequiredKey":0,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":0,"Test\\Schema\\DateSchemaTest::testStringIsObject":0.022,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":0.002,"Test\\Schema\\DateSchemaTest::testDateNowKey":0.002,"Test\\Schema\\DateSchemaTest::testDateTodayKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsObject":0.007,"Test\\Schema\\BooleanSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":0.001,"Test\\Schema\\BooleanSchemaTest::testBooleanIsValidKey":0,"Test\\Script\\StringValidationTest::testStringIsObject":0,"Test\\Script\\StringValidationTest::testStringObjectException":0.006,"Test\\Script\\StringValidationTest::testException":0.007,"Test\\Script\\StringValidationTest::testStringMin":0.001,"Test\\Script\\StringValidationTest::testStringValidationException":0.006,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":0,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":0.007,"Test\\Script\\StringValidationTest::testStringMinError":0,"Test\\Script\\StringValidationTest::testStringMinSuccess":0,"Test\\Script\\StringValidationTest::testStringMaxError":0,"Test\\Script\\StringValidationTest::testStringMaxSuccess":0,"Test\\Script\\StringValidationTest::testStringEmailError":0.001,"Test\\Script\\StringValidationTest::testStringEmailSuccess":0,"Test\\Script\\StringValidationTest::testStringUrlError":0.008,"Test\\Script\\StringValidationTest::testStringURLError":0,"Test\\Script\\StringValidationTest::testStringURLSuccess":0.008,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":0.001,"Test\\Script\\StringValidationTest::testStringRequiredErrors":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknow":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":0,"Test\\Script\\StringValidationTest::testStringMatchErrors":0,"Test\\Script\\StringValidationTest::testStringMatchSuccess":0,"Test\\Script\\StringValidationTest::testStringValidationFieldNotDefinedException":0,"Test\\ValidationTest::testValidationObject":0.008}}

composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22
"name": "wepesi/validation",
33
"description": "This module has been design to help you validate data values",
44
"type": "library",
5-
"license": "Apache",
6-
"Stabilities": "v3.1-BETA",
5+
"license": "Apache-2.0",
76
"minimum-stability": "beta",
7+
"support":{
8+
"email": "ibmussafb@gmail.com"
9+
} ,
810
"authors": [
911
{
1012
"name": "Boss Ibrahim Mussa Gregoire",
11-
"email": "ibmussafb@gmail.com"
13+
"email": "ibmussafb@gmail.com",
14+
"role": "Develloper"
1215
},
1316
{
1417
"name": "Masikilizano Emanuel Domeshow",
15-
"email": "domeshowemmanuel@gmail.com"
18+
"email": "domeshowemmanuel@gmail.com",
19+
"role": "Develloper"
1620
}
1721
],
1822
"autoload": {

src/Providers/Contracts/Contracts.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
4+
namespace Wepesi\App\Providers\Contracts;
5+
6+
7+
interface Contracts
8+
{
9+
function min($rule);
10+
function max($rule);
11+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
4+
namespace Wepesi\App\Providers\Contracts;
5+
6+
7+
interface SchemaContracts extends Contracts
8+
{
9+
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
4+
namespace Wepesi\App\Providers\Contracts;
5+
6+
7+
interface ValidationContracts extends Contracts
8+
{
9+
function required();
10+
function addError(array $value);
11+
function result();
12+
}

src/Providers/SChemaProvider.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace Wepesi\App\Providers;
4+
5+
use Wepesi\App\Providers\Contracts\SchemaContracts;
6+
7+
abstract class SChemaProvider implements SchemaContracts
8+
{
9+
protected array $schema=[];
10+
protected string $source;
11+
12+
/**
13+
* @param $rule
14+
* @return SChemaProvider
15+
*
16+
*/
17+
function min($rule): SChemaProvider
18+
{
19+
$this->schema[$this->source]["min"]=$rule;
20+
return $this;
21+
}
22+
23+
/**
24+
* @param $rule
25+
* @return $this
26+
*/
27+
function max($rule): SChemaProvider
28+
{
29+
$this->schema[$this->source]["max"]=$rule;
30+
return $this;
31+
}
32+
33+
function required(): SChemaProvider
34+
{
35+
$this->schema[$this->source]["required"]=true;
36+
return $this;
37+
}
38+
39+
/**
40+
* @return array
41+
*/
42+
function check(): array
43+
{
44+
return $this->schema;
45+
}
46+
}

src/Providers/ValidationProvider.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
4+
namespace Wepesi\App\Providers;
5+
6+
7+
use Wepesi\App\Providers\Contracts\Contracts;
8+
9+
abstract class ValidationProvider implements Contracts
10+
{
11+
abstract function min($rule);
12+
abstract function max($rule);
13+
abstract function required();
14+
/**
15+
*
16+
* @param array $value
17+
* @return void
18+
*/
19+
function addError(array $value): void
20+
{
21+
$this->errors[] = $value;
22+
}
23+
24+
/**
25+
* @return array
26+
*/
27+
function result(): ?array
28+
{
29+
return $this->errors;
30+
}
31+
}

src/Schema/BooleanSchema.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function isValid(): BooleanSchema
2929
return $this;
3030
}
3131

32-
function required(): SChema
32+
function required(): BooleanSchema
3333
{
3434
$this->schema[$this->source]['required'] = true;
3535

src/Schema/DateSchema.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33

44
namespace Wepesi\App\Schema;
5+
use Wepesi\App\Providers\SChemaProvider;
6+
57
/**
68
* Description of VDate
79
*
810
* @author Boss Ibrahim Mussa
911
*/
10-
class DateSchema extends SChema
12+
class DateSchema extends SChemaProvider
1113
{
1214
function __construct() {
1315
$this->source="VDate";

src/Schema/NumberSchema.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88

99
namespace Wepesi\App\Schema;
1010

11+
use Wepesi\App\Providers\SChemaProvider;
12+
1113
/**
1214
* Description of VNumber
1315
*
1416
* @author Boss Ibrahim Mussa
1517
*/
16-
class NumberSchema extends SChema {
18+
class NumberSchema extends SChemaProvider {
1719

1820
function __construct() {
1921
$this->source="VNumber";

src/Schema/SChema.php

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/Schema/StringSchema.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66
* and open the template in the editor.
77
*/
88

9+
use Wepesi\App\Providers\SChemaProvider;
10+
11+
912
/**
1013
* Description of String
1114
*
1215
* @author Boss Ibrahim Mussa
1316
*/
14-
class StringSchema extends SChema {
17+
class StringSchema extends SChemaProvider {
1518

1619
function __construct() {
1720
$this->source="String";

src/Script/StringValidation.php

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22
namespace Wepesi\App\Script;
33

44
use Exception;
5+
use Wepesi\App\Providers\ValidationProvider;
56

67
/**
78
* Description of String
89
*
910
* @author Boss Ibrahim Mussa
1011
*/
11-
class StringValidation {
12+
class StringValidation extends ValidationProvider {
1213
private string $string_value, $field_item,$field_value;
1314
private array $source_data;
14-
private ?array $errors;
15+
protected ?array $errors;
1516
private int $_min, $_max;
1617

1718
/**
@@ -21,7 +22,7 @@ class StringValidation {
2122
* @throws Exception
2223
*/
2324
function __construct(array $source,array $schema) {
24-
$this->init_app($source,$schema);
25+
$this->initInstance($source,$schema);
2526
}
2627

2728
/**
@@ -38,7 +39,7 @@ private function extract_data(array $schema ){
3839
/**
3940
* @throws Exception
4041
*/
41-
private function init_app($source, $schema){
42+
private function initInstance($source, $schema){
4243
$this->errors=null;
4344
$this->_min=0;
4445
$this->_max=1;
@@ -70,7 +71,7 @@ private function init_app($source, $schema){
7071
* @param int $rule
7172
*
7273
*/
73-
function min(int $rule):void
74+
function min($rule):void
7475
{
7576
if (strlen($this->field_value) < $rule) {
7677
$message=[
@@ -88,7 +89,7 @@ function min(int $rule):void
8889
* @param int $rule
8990
*
9091
*/
91-
function max(int $rule)
92+
function max($rule)
9293
{
9394
$this->_max=$rule;
9495
if (strlen($this->string_value) > $rule) {
@@ -185,21 +186,4 @@ private function isString(string $item_key): bool
185186
}
186187
return true;
187188
}
188-
/**
189-
*
190-
* @param array $value
191-
* @return void
192-
*/
193-
private function addError(array $value): void
194-
{
195-
$this->errors[] = $value;
196-
}
197-
198-
/**
199-
* @return array
200-
*/
201-
function result(): ?array
202-
{
203-
return $this->errors;
204-
}
205189
}

test/ValidationTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
4+
namespace Test;
5+
6+
7+
use PHPUnit\Framework\TestCase;
8+
use Wepesi\App\Validate;
9+
10+
class ValidationTest extends TestCase
11+
{
12+
function testValidationObject(){
13+
$validate = new Validate();
14+
$this->assertIsObject($validate);
15+
}
16+
}

0 commit comments

Comments
 (0)