diff --git a/.idea/php.xml b/.idea/php.xml
index 3b1bcf5..9a0a9fd 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -6,4 +6,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/wepesi_validation.iml b/.idea/wepesi_validation.iml
index 1ee89a6..40fe797 100644
--- a/.idea/wepesi_validation.iml
+++ b/.idea/wepesi_validation.iml
@@ -3,7 +3,7 @@
-
+
diff --git a/composer.json b/composer.json
index 609da5c..7991ca0 100644
--- a/composer.json
+++ b/composer.json
@@ -15,7 +15,7 @@
],
"autoload": {
"psr-4": {
- "Wepesi\\app\\":"src/"
+ "Wepesi\\App\\":"src/"
}
},
"require": {
diff --git a/lang/fr/language.php b/lang/fr/language.php
index e89a9fd..969db25 100644
--- a/lang/fr/language.php
+++ b/lang/fr/language.php
@@ -1,10 +1,18 @@
"`%s` doit avoir un minimum de `%s` caracteres",
- "`%s` should have maximum of `%s` caracters"=>"`%s` doit avoir un maximum de `%s` caracteres",
+ "`%s` should have minimum of `%s` characters"=>"`%s` doit avoir un minimum de `%s` caractèress",
+ "`%s` should have maximum of `%s` characters"=>"`%s` doit avoir un maximum de `%s` caractèress",
"`%s` this should be an email"=>"`%s` doit etre un email",
"`%s` this should be a link(url)"=>"`%s` doit avoir un lien(url) ",
"`%s` should match %s"=>"`%s` doit correpondre a `%s`",
"`%s` is required"=>"`%s` est obligatoire",
+ "`%s` should be a string"=>"`%s` doit est une chaine de caractères",
+ "`%s` should be greater than `%s`"=>"`%s` devrait être supérieur à `%s`",
+ "`%s` should be less than `%s`"=>"`%s` devrait être inférieur à `%s`",
+ "`%s` should be a positive number"=>"`%s` devrait être un nombre positif",
+ "`%s` should be a number"=>"`%s` devrait être un nombre.",
+ "`%s` is unknow"=>"`%s` n'est pas definit",
+ "`%s` should be a date."=>"`%s` devrait être une date.",
+ "`%s` should be greater than now"=>"`%s` devrait être plus grand que maintenant",
"`%s` should be a string"=>"`%s` doit est une chaine de caractere",
];
\ No newline at end of file
diff --git a/src/VBoolean.php b/src/VBoolean.php
index 9a62c58..270abdd 100644
--- a/src/VBoolean.php
+++ b/src/VBoolean.php
@@ -1,6 +1,6 @@
date_value=$source[$string_item];
@@ -29,14 +27,15 @@ function __construct(array $source,string $string_item=null) {
/**
* @return $this
*/
- function now(){
+ function now(): VDate
+ {
$min_date_time=strtotime("now");
$min_date=date("d/F/Y",$min_date_time);
$date_value_time= strtotime($this->date_value);
if ($date_value_time < $min_date_time) {
$message=[
"type"=>"date.now",
- "message"=> "`{$this->string_item}` should be greater than now",
+ "message"=> i18n::translate("`%s` should be greater than now",[$this->string_item]),
"label"=>$this->string_item,
"limit"=>$min_date
];
@@ -50,15 +49,15 @@ function now(){
* @return $this
* while trying to get day validation use this module
*/
- function today(string $times=null){
- $regeg="#+[0-9]h:[0-9]min:[0-9]sec#";
+ function today(string $times=null): VDate
+ {
$min_date_time=strtotime("now {$times}");
$min_date=date("d/F/Y",$min_date_time);
$date_value_time= strtotime($this->date_value);
if ($date_value_time > $min_date_time) {
$message=[
"type"=>"date.now",
- "message"=> "`{$this->string_item}` should be greater than today ",
+ "message"=> i18n::translate("`%s` should be greater than today ",[$this->string_item]),
"label"=>$this->string_item,
"limit"=>$min_date
];
@@ -66,26 +65,28 @@ function today(string $times=null){
}
return $this;
}
+
/**
- * @param string $rule_values
+ * @param string|null $rule_values
* @return $this
* get the min date control from the given date
*/
- function min(string $rule_values=null){
+ function min(string $rule_values=null): VDate
+ {
/**
* $regex= "#[a-zA-Z]#";
* $time= preg_match($regex,$rule_values);
* $con=!$time?$time:(int)$time;
* in case the parameters are integers
*/
- $rule_values=isset($rule_values)?$rule_values: "now";
+ $rule_values= $rule_values ?? "now";
$min_date_time=strtotime($rule_values);
$min_date=date("d/F/Y",$min_date_time);
$date_value_time= strtotime($this->date_value);
if ($date_value_time > $min_date_time) {
$message=[
"type"=>"date.min",
- "message"=> "`{$this->string_item}` should greater than `{$min_date}`",
+ "message"=> i18n::translate("`%s` should be greater than `%s`",[$this->string_item,$min_date]),
"label"=>$this->string_item,
"limit"=>$min_date
];
@@ -99,16 +100,16 @@ function min(string $rule_values=null){
* @return $this
* while try to check maximum date of a defined period use this module
*/
- function max(string $rule_values=null){
- $rule_values=isset($rule_values)?$rule_values: "now";
-
+ function max(string $rule_values=null): VDate
+ {
+ $rule_values= $rule_values ?? "now";
$max_date_time=strtotime($rule_values);
$max_date=date("d/F/Y",$max_date_time);
$date_value_time= strtotime($this->date_value);
if ($max_date_time<$date_value_time) {
$message = [
"type" => "date.max",
- "message" => "`{$this->string_item}` should be less than `{$max_date}`",
+ "message" => i18n::translate("`%s` should be less than `%s`",[$this->string_item,$max_date]),
"label" => $this->string_item,
"limit" => $max_date
];
@@ -120,12 +121,13 @@ function max(string $rule_values=null){
* @return $this
* call this module is the input is requied and should not be null or empty
*/
- function required(){
+ function required(): VDate
+ {
$required_value= trim($this->date_value);
if (empty($required_value) || strlen($required_value)==0) {
$message = [
"type"=> "any.required",
- "message" => "`{$this->string_item}` {$this->lang->required}",
+ "message" => i18n::translate("`%s` is required",[$this->string_item]),
"label" => $this->string_item,
];
$this->addError($message);
@@ -133,29 +135,30 @@ function required(){
return $this;
}
// private methode
- private function checkExist(string $itemKey=null){
+ private function checkExist(string $itemKey=null): void
+ {
$item_to_check=$itemKey?$itemKey:$this->string_item;
$regex="#[a-zA-Z0-9]#";
$this->_errors=[];
if (!isset($this->source_data[$item_to_check])) {
$message = [
"type"=> "any.unknow",
- "message" => "`{$item_to_check}` {$this->lang->unknow}",
+ "message" => i18n::translate("`%s` is unknow",[$item_to_check]),
"label" => $item_to_check,
];
$this->addError($message);
}else if(!preg_match($regex,$this->source_data[$item_to_check]) || strlen(trim($this->source_data[$item_to_check]))==0){
$message=[
"type" => "date.unknow",
- "message" => "`{$item_to_check}` {$this->lang->string_unknow}",
+ "message" => i18n::translate("`%s` should be a date.",[$item_to_check]),
"label" => $item_to_check,
];
$this->addError($message);
}
- return true;
}
- private function addError(array $value){
- return $this->_errors[]=$value;
+ private function addError(array $value): void
+ {
+ $this->_errors[] = $value;
}
function check(){
return $this->_errors;
diff --git a/src/VNumber.php b/src/VNumber.php
index 6c30f66..d7f1aa7 100644
--- a/src/VNumber.php
+++ b/src/VNumber.php
@@ -6,7 +6,7 @@
* and open the template in the editor.
*/
-namespace Wepesi\app;
+namespace Wepesi\App;
/**
* Description of VNumber
@@ -16,11 +16,11 @@
class VNumber {
//put your code here
private $string_value;
- private $string_item;
- private $source_data;
- private $_errors;
- private $_min;
- private $_max;
+ private string $string_item;
+ private array $source_data;
+ private array $_errors;
+ private int $_min;
+ private int $_max;
function __construct(array $source,string $string_item) {
$this->source_data=$source;
@@ -30,11 +30,17 @@ function __construct(array $source,string $string_item) {
$this->string_value=$source[$string_item];
}
}
- function min(int $min_values){
+
+ /**
+ * @param int $min_values
+ * @return $this
+ */
+ function min(int $min_values): VNumber
+ {
if ((int) $this->string_value < $min_values) {
$message=[
"type"=>"number.min",
- "message"=> "`{$this->string_item}` should be greater than `{$min_values}`",
+ "message"=> i18n::translate("`%s` should be greater than `%s`",[$this->string_item,$min_values]),
"label"=>$this->string_item,
"limit"=>$min_values
];
@@ -42,11 +48,17 @@ function min(int $min_values){
}
return $this;
}
- function max(int $min_values){
+
+ /**
+ * @param int $min_values
+ * @return $this
+ */
+ function max(int $min_values): VNumber
+ {
if ((int) $this->string_value > $min_values) {
$message=[
"type"=>"number.max",
- "message"=> "`{$this->string_item}` should be less than `{$min_values}`",
+ "message"=> i18n::translate("`%s` should be less than `%s`",[$this->string_item,$min_values]),
"label"=>$this->string_item,
"limit"=>$min_values
];
@@ -54,11 +66,17 @@ function max(int $min_values){
}
return $this;
}
- function positive(int $min_values){
+
+ /**
+ * @param int $min_values
+ * @return $this
+ */
+ function positive(int $min_values): VNumber
+ {
if ((int) $this->string_value < 0) {
$message=[
"type"=>"number.positive",
- "message"=> "`{$this->string_item}` should be a positive number",
+ "message"=> i18n::translate("`%s` should be a positive number",[$this->string_item]),
"label"=>$this->string_item,
"limit"=>1
];
@@ -66,27 +84,37 @@ function positive(int $min_values){
}
return $this;
}
- function required(){
+
+ /**
+ * @return $this
+ */
+ function required(): VNumber
+ {
$required_value= trim($this->string_value);
if (empty($required_value)) {
$message = [
"type"=> "any.required",
- "message" => "`{$this->string_item}` is required",
+ "message" => i18n::translate("`%s` is required",[$this->string_item]),
"label" => $this->string_item,
];
$this->addError($message);
}
return $this;
}
-//
- private function checkExist(string $itemKey=null){
- $item_to_check=$itemKey?$itemKey:$this->string_item;
+
+ /**
+ * @param string|null $itemKey
+ * @return bool
+ */
+ private function checkExist(string $itemKey=null): bool
+ {
+ $item_to_check=!$itemKey?$this->string_item:$itemKey;
$regex_string="#[a-zA-Z]#";
$status_key_exist=true;
if (!isset($this->source_data[$item_to_check])) {
$message = [
"type"=> "any.unknow",
- "message" => "`{$item_to_check}` is unknow",
+ "message" => i18n::translate("`%s` is unknow",[$item_to_check]),
"label" => $item_to_check,
];
$this->addError($message);
@@ -94,7 +122,7 @@ private function checkExist(string $itemKey=null){
}else if (preg_match($regex_string,trim($this->source_data[$item_to_check])) || !is_integer($this->source_data[$item_to_check])) {
$message = [
"type"=> "number.unknow",
- "message" => "`{$item_to_check}` should be a number",
+ "message" => i18n::translate("`%s` should be a number",[$item_to_check]),
"label" => $item_to_check,
];
$this->addError($message);
@@ -102,10 +130,20 @@ private function checkExist(string $itemKey=null){
}
return $status_key_exist;
}
- private function addError(array $value){
- return $this->_errors[]=$value;
+
+ /**
+ * @param array $value
+ */
+ private function addError(array $value): void
+ {
+ $this->_errors[] = $value;
}
- function check(){
+
+ /**
+ * @return array
+ */
+ function check(): array
+ {
return $this->_errors;
}
}
diff --git a/src/VString.php b/src/VString.php
index ec0d62c..594499c 100644
--- a/src/VString.php
+++ b/src/VString.php
@@ -1,5 +1,5 @@
string_item=$string_item;
@@ -38,12 +38,13 @@ function __construct(array $source,string $string_item=null) {
* @param int $rule_values
* @return $this
*/
- function min(int $rule_values=0){
+ function min(int $rule_values=0): VString
+ {
$min=is_integer($rule_values)? ((int)$rule_values>0?(int)$rule_values:0):0;
if (strlen($this->string_value) < $min) {
$message=[
"type"=>"string.min",
- "message"=> i18n::translate("`%s` should have minimum of `%s` caracters",[$this->string_item,$min]),
+ "message"=> i18n::translate("`%s` should have minimum of `%s` characters",[$this->string_item,$min]),
"label"=>$this->string_item,
"limit"=>$min
];
@@ -56,13 +57,14 @@ function min(int $rule_values=0){
* @param int $rule_values
* @return $this
*/
- function max(int $rule_values=1){
+ function max(int $rule_values=1): VString
+ {
$max = is_integer($rule_values) ? ((int)$rule_values > 0 ? (int)$rule_values : 0):0;
$this->_max=$max;
if (strlen($this->string_value) > $max) {
$message = [
"type" => "string.max",
- "message" => i18n::translate("`%s` should have maximum of `%s` caracters",[$this->string_item,$max]),
+ "message" => i18n::translate("`%s` should have maximum of `%s` characters",[$this->string_item,$max]),
"label" => $this->string_item,
"limit" => $max
];
@@ -74,7 +76,8 @@ function max(int $rule_values=1){
*
* @return $this
*/
- function email(){
+ function email(): VString
+ {
if (!filter_var($this->string_value, FILTER_VALIDATE_EMAIL)) {
$message = [
"type" => "string.email",
@@ -89,7 +92,8 @@ function email(){
*
* @return $this
*/
- function url(){
+ function url(): VString
+ {
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $this->string_value)) {
$message = [
"type" => "string.url",
@@ -117,7 +121,12 @@ function match(string $key_tomatch){
}
return $this;
}
- function required(){
+
+ /**
+ * @return $this
+ */
+ function required(): VString
+ {
$required_value= trim($this->string_value);
if (empty($required_value)) {
$message = [
@@ -141,7 +150,7 @@ private function checkExist(string $itemKey=null){
if (!isset($this->source_data[$item_to_check])) {
$message = [
"type"=> "any.unknow",
- "message" => "`{$item_to_check}` is unknow",
+ "message" => i18n::translate("`%s` is unknow",[$item_to_check]),
"label" => $item_to_check,
];
$this->addError($message);
@@ -159,10 +168,11 @@ private function checkExist(string $itemKey=null){
}/**
*
* @param array $value
- * @return type
- */
- private function addError(array $value){
- return $this->_errors[]=$value;
+ * @return void
+ */
+ private function addError(array $value): void
+ {
+ $this->_errors[] = $value;
}/**
*
* @return type
diff --git a/src/Validate.php b/src/Validate.php
index c9f7f0d..6a18266 100644
--- a/src/Validate.php
+++ b/src/Validate.php
@@ -1,6 +1,6 @@
0){
+ $key_value=!isset($language[$message])?null:$language[$message];
+ $message_key=$key_value!=null?vsprintf($key_value,$data):vsprintf($message,$data);
+ }
+ return $message_key;
+ }
+}
\ No newline at end of file
diff --git a/test/date.php b/test/date.php
index 2408fb6..6257c77 100644
--- a/test/date.php
+++ b/test/date.php
@@ -1,7 +1,7 @@
$valid->date("birth_day")->min("-18years")->required()->check(),
- "date_created"=>$valid->date("birth_day")->now()->required()->check()
+ "date_created"=>$valid->date("birth_day")->now()->max("100years")->required()->check()
];
$valid->check($source,$schema);
diff --git a/test/index.php b/test/index.php
index aaa4e86..a1a3990 100644
--- a/test/index.php
+++ b/test/index.php
@@ -1,5 +1,5 @@
"",
diff --git a/test/number.php b/test/number.php
index f264145..4137f99 100644
--- a/test/number.php
+++ b/test/number.php
@@ -1,7 +1,7 @@
$valid->number("age")->min(18)->max(50)->required()->check()
];
- $valid->check($source,$check);
+ $valid->check($source,$schema);
var_dump($valid->passed());
var_dump($valid->errors());
\ No newline at end of file