Commit graph

128 commits

Author SHA1 Message Date
Singwai Chan
c5978eb5b0
Create "Subset" rule
Co-authored-by: Henrique Moody <henriquemoody@gmail.com>
2018-07-01 15:08:07 +02:00
William Espindola
dc3951edf1
Apply contribution guidelines to "Each" rule
Also removed the possibility of validating keys once it's possible to
reach the same behavior by combining this rule with "Call" rule.

Co-authored-by: Henrique Moody <henriquemoody@gmail.com>
2018-06-23 21:40:39 +02:00
Henrique Moody
2ab1f11c99
Create "Equivalent" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-06-23 17:38:53 +02:00
William Espindola
a79e702173
Apply contribution guidelines to "CountryCode" rule
The "AbstractSearcher" already does most of the job that "CountryCode"
was doing, so using it as parent class made more sense. That also makes
the validation case-sensitive which is not a problem since the standard
ISO 3166-1 in fact enforces an specific case for the country codes.

The documentation about the rule is also updated.

Co-Authored-By: Henrique Moody <henriquemoody@gmail.com>
2018-06-15 18:49:52 +02:00
William Espindola
8272f43207
Apply contribution guidelines to "Charset" rule
Also change the constructor of the rule to accept charsets as arguments
instead of being either an array or a string.

Co-Authored-By: Henrique Moody <henriquemoody@gmail.com>
2018-06-11 22:24:28 +02:00
Henrique Moody
24c2ba8faa
Make "Min" always inclusive
Since the rule "GreaterThan" was created, there is no reason to allow
"Min" to not be inclusive.

Also apply contribution guidelines to the rule.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 17:14:23 +02:00
Emmerson Siqueira
9eb159f3d9
Rename "MaximumAge" and "MinimumAge" rules
Those rules were renamed to keep consistent with other rules such as
'Max' and 'Min'.

Signed-off-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-05-31 17:01:15 +02:00
Emmerson Siqueira
271ddd1fe0
Rename 'Prnt' rule to 'Printable'
This changes the rule name in order to be more descriptive and explicit
(avoid abbreviation). It also applies the new contribution guidelines.

Signed-off-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-05-31 16:00:43 +02:00
Henrique Moody
6351f7a092
Make "Max" always inclusive
Since the rule "LessThan" was created, there is no reason to allow "Max"
to not be inclusive.

Also apply contribution guidelines to the rule.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 15:51:57 +02:00
Henrique Moody
da6abf4bdd
Make "Between" always inclusive
Generally speaking it makes more sense to have it always inclusive. Even
though the word "between" does not imply that it is inclusive or
exclusive it's more natural this way.

Besides, users can always use "GreaterThan" and "LessThan" rules in case
that is necessary.

Removing this boolean parameter reduces a bit of the complexity of the
rule.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 15:10:59 +02:00
Henrique Moody
9b20d6dae2
Create "GreaterThan" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 14:47:22 +02:00
Henrique Moody
9d0d750a18
Create "LessThan" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 14:01:45 +02:00
Henrique Moody
8c529c433e
Refactor ValidationException
Make the ValidationException a little bit less mutable than before. All
its dependencies are now passed into the constructor.

This commit also make the Factory pass the translator to the exceptions
allowing to define the translator before the exception gets created.
This change is not the ideal one, later I would like to not need the
Singleton from the Factory to do that, but for now it seems like a good
approach.

One more thing that this commit does is to introduce the "id" for
Exceptions. Key can be either the defined "name" or the name of the rule
that throwed the exception. This method will be handy to identify
exceptions better.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody
47eaea6f28
Merge branch '1.1' 2018-05-19 16:46:58 +02:00
Tim Bond
020ea1ebb5
Update type parameters for Validator doc blocks
The "@param" tag uses phpdoc types. However the "@method" tag uses PHP's
type declarations. Therefore, "mixed" refers to a class whose literal
name is mixed and not the "mixed" keyword. Since "mixed" is not a valid
class name in this context, the type paramaters should be removed.

Additionally, the "callable" type paramater can be used on the
"callback" validation method.

References:
[1]: http://docs.phpdoc.org/references/phpdoc/tags/param.html
[2]: http://docs.phpdoc.org/references/phpdoc/types.html
[3]: http://docs.phpdoc.org/references/phpdoc/tags/method.html
[4]: http://php.net/functions.arguments#functions.arguments.type-declaration
[5]: http://docs.phpdoc.org/references/phpdoc/types.html
Reviewed-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-19 16:26:44 +02:00
Henrique Moody
60e3fc3740
Refactor "Between" rule
The "Between" rule was extending the "AllOf" rule and adding "Max" and
"Min" rules to the chain. Because of that, when the rule failed we could
get the "MinException" or the "MaxException" exception, and only if both
failed that we would get the "BetweenException".

With this change it will always get the "BetweenException" which makes
it more explicit.

Also, the "Between" is not using the same standard required in the
Contribution Guidelines.
2018-03-03 18:06:26 +01:00
Henrique Moody
8d44bc3407
Refactor rules related to age
The "Age" rule was removed because it had too many responsibilities.
Instead "MaximumAge" was created (since there is already "MinimumAge").

This commit also introduces "AbstractAge" rule that is been used in both
mentioned rules.
2018-02-24 09:28:54 +01:00
Jens Segers
51ce465b8c
Create "Nullable" rule 2018-02-23 09:20:51 +01:00
Henrique Moody
92a8ab13cf
Fix coding standards
These are the changes after running the last version of PHP-CS-Fixer.
2018-02-04 01:00:30 +01:00
Henrique Moody
2007c7dc6e
Create "Time" rule 2018-01-30 09:47:41 +01:00
Henrique Moody
0db1cd6e1b
Create "Date" rule 2018-01-29 09:39:57 +01:00
Henrique Moody
30dc089565
Method check() should not have a return value
One this method should throw an exception when the input is not valid,
returning `TRUE` when it succeeds is not really consistent.
2018-01-28 17:38:40 +01:00
Henrique Moody
1f217dda66
Refactor Factory class
With this code the Factory class will be used also to create Exceptions.

In order to do that, the AbstractRule::reportError() was changed, so the
tests of the AbstractRule class.

What this commit also does:
- Port code to PHP 7;
- Do not keep the default instance of the Factory in the Validator
  class;
- Make Factory final.
2018-01-14 16:26:35 +01:00
Henrique Moody
ef975629f3
Changes on PHP-CS-Fixer configuration
Because of `declare(strict_types=1)` some changes were necessary.
2018-01-04 17:59:37 +01:00
Henrique Moody
d8e5f305a7
Remove "malkusch/bav" as a dependency
This packages is not maintained anymore, therefore it should be removed
from our codebase.
2017-11-12 13:59:05 +01:00
mazanax
8b3790103e
Create "Luhn" rule 2017-10-16 20:38:56 +02:00
Henrique Moody
fd1964d887
Merge branch '1.1' 2017-10-16 10:43:22 +02:00
Henrique Moody
631affdbf2
Merge branch '1.0' into 1.1 2017-10-16 10:39:15 +02:00
Lars Decker
a17e5e74bc
Add missing "MinimumAge" parameter 2017-10-15 19:52:26 +02:00
Jens Segers
7d42813fb7
Create "Base64" rule 2017-10-15 19:38:31 +02:00
Dick van der Heiden
327297ca6f
Create "Uuid" rule 2017-10-15 18:34:38 +02:00
Henrique Moody
0338e18e83
Rename rule "Date" to "DateTime"
Also change rules to use `DateTimeInterface` and `DateTimeImmutable`
when possible.
2017-05-01 13:16:59 +02:00
Vitaliy
82f53d27e1
Create "Number" rule 2017-04-19 09:49:58 +02:00
Krzysztof Śmiałek
04e8b72908 Create "Unique" rule 2017-04-12 11:23:44 +02:00
Henrique Moody
569506bc14
Fix wrong docblock on Validator class 2017-03-27 23:52:34 +02:00
Jonathan Stewmon
298102ba13 Use annotations for variadic methods 2017-03-27 13:37:47 +02:00
Bruno Koga
a0ba215524
Create "Pis" rule 2017-03-27 11:42:24 +02:00
Bradyn Poulsen
d48b55a092
Create "OneOf" rule 2017-02-05 14:49:07 +01:00
Henrique Moody
7ee4ae47d5
Rename "OneOf" to "AnyOf" 2017-02-05 12:28:08 +01:00
Henrique Moody
27d35987be
Create "StringVal" rule 2017-02-04 15:16:00 +01:00
Henrique Moody
e708edd005
Rename rule "Numeric" to "NumericVal" 2016-11-06 18:45:44 +01:00
Julián Gutiérrez
195a8fe534
Create "Nif" rule
Rule to validate spanish NIF (DNI/NIE/CIF).
2016-10-09 17:50:52 +02:00
Tomasz Regdos
38aedd01e3
Create "Vatin" rule (VAT identification number)
See https://en.wikipedia.org/wiki/VAT_identification_number
2016-09-19 09:50:50 +02:00
Henrique Moody
53b737513b Merge branch '1.0' into 1.1 2016-08-03 11:06:53 +02:00
Henrique Moody
fb7f19f9ad Fix missing docblock for "iterableType" rule 2016-08-03 11:05:28 +02:00
Henrique Moody
b8ecd59f48 Merge branch '1.0' into 1.1 2016-05-07 20:54:08 +02:00
Marcel Prince
6597aa5114 Add method Identical To Validator.php 2016-05-07 20:51:56 +02:00
Henrique Moody
bb0e40a08e Set template for the only rule in the chain
When there is just one rule in the chain and the there is a defined
template for that, the expected behaviour when using the `check()`
method is to see the exception message with the defined template.
2016-04-08 13:39:57 -03:00
Henrique Moody
46541c7e46 Allow the define brands for credit card validation 2016-04-06 16:42:49 -03:00
Emmerson
f40eb63d7b Create "PhpLabel" rule 2016-03-04 21:48:25 -03:00