Rule::__callStatic()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 5
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
/**
4
 * This file is part of Dimtrovich/Validation.
5
 *
6
 * (c) 2023 Dimitri Sitchet Tomkeu <[email protected]>
7
 *
8
 * For the full copyright and license information, please view
9
 * the LICENSE file that was distributed with this source code.
10
 */
11
12
namespace Dimtrovich\Validation;
13
14
use BlitzPHP\Utilities\String\Text;
15
16
/**
17
 * Facade to access to rules validator
18
 *
19
 * @method static \Rakit\Validation\Rules\Accepted                   accepted()
20
 * @method static \Dimtrovich\Validation\Rules\AcceptedIf            acceptedIf()
21
 * @method static \Dimtrovich\Validation\Rules\ActiveURL             activeUrl()
22
 * @method static \Dimtrovich\Validation\Rules\After                 after()
23
 * @method static \Dimtrovich\Validation\Rules\AfterOrEqual          afterOrEqual()
24
 * @method static \Dimtrovich\Validation\Rules\Alpha                 alpha()
25
 * @method static \Dimtrovich\Validation\Rules\AlphaDash             alphaDash()
26
 * @method static \Dimtrovich\Validation\Rules\AlphaNum              alphaNum()
27
 * @method static \Rakit\Validation\Rules\AlphaSpaces                alphaSpaces()
28
 * @method static \Dimtrovich\Validation\Rules\AnyOf                 anyOf(array $allowed_values)
29
 * @method static \Dimtrovich\Validation\Rules\TypeArray             array()
30
 * @method static \Dimtrovich\Validation\Rules\ArrayCanOnlyHaveKeys  arrayCanOnlyHaveKeys(array $keys)
31
 * @method static \Dimtrovich\Validation\Rules\ArrayMustHaveKeys     arrayMustHaveKeys(array $keys)
32
 * @method static \Dimtrovich\Validation\Rules\Ascii                 ascii()
33
 * @method static \Dimtrovich\Validation\Rules\Base64                base64()
34
 * @method static \Dimtrovich\Validation\Rules\Before                before()
35
 * @method static \Dimtrovich\Validation\Rules\BeforeOrEqual         beforeOrEqual()
36
 * @method static \Dimtrovich\Validation\Rules\Between               between()
37
 * @method static \Dimtrovich\Validation\Rules\Bic                   bic()
38
 * @method static \Dimtrovich\Validation\Rules\BitcoinAddress        bitcoinAddress()
39
 * @method static \Rakit\Validation\Rules\Boolean                    boolean()
40
 * @method static \Rakit\Validation\Rules\Callback                   callback()
41
 * @method static \Dimtrovich\Validation\Rules\Camelcase             camelcase()
42
 * @method static \Dimtrovich\Validation\Rules\CapitalCharWithNumber capitalCharWithNumber()
43
 * @method static \Dimtrovich\Validation\Rules\CarNumber             carNumber()
44
 * @method static \Dimtrovich\Validation\Rules\Cidr                  cidr()
45
 * @method static \Dimtrovich\Validation\Rules\Confirmed             confirmed()
46
 * @method static \Dimtrovich\Validation\Rules\Contains              contains()
47
 * @method static \Dimtrovich\Validation\Rules\ContainsAll           containsAll()
48
 * @method static \Dimtrovich\Validation\Rules\CreditCard            creditCard()
49
 * @method static \Dimtrovich\Validation\Rules\Currency              currency()
50
 * @method static \Dimtrovich\Validation\Rules\Date                  date(?string $format = null)
51
 * @method static \Dimtrovich\Validation\Rules\DateEquals            dateEquals()
52
 * @method static \Dimtrovich\Validation\Rules\Datetime              datetime()
53
 * @method static \Dimtrovich\Validation\Rules\Decimal               decimal(float $min, float $max = null)
54
 * @method static \Dimtrovich\Validation\Rules\Declined              declined()
55
 * @method static \Dimtrovich\Validation\Rules\DeclinedIf            declinedIf()
56
 * @method static \Rakit\Validation\Rules\Defaults                   defaults()
57
 * @method static \Rakit\Validation\Rules\Different                  different()
58
 * @method static \Rakit\Validation\Rules\Digits                     digits()
59
 * @method static \Rakit\Validation\Rules\DigitsBetween              digitsBetween()
60
 * @method static \Dimtrovich\Validation\Rules\Dimensions            dimensions()
61
 * @method static \Dimtrovich\Validation\Rules\DiscordUsername       discordUsername()
62
 * @method static \Dimtrovich\Validation\Rules\Distinct              distinct()
63
 * @method static \Dimtrovich\Validation\Rules\DoesntEndWith         doesntEndWith()
64
 * @method static \Dimtrovich\Validation\Rules\DoesntStartWith       doesntStartWith()
65
 * @method static \Dimtrovich\Validation\Rules\Domain                domain()
66
 * @method static \Dimtrovich\Validation\Rules\Duplicate             duplicate()
67
 * @method static \Dimtrovich\Validation\Rules\DuplicateCharacter    duplicateCharacter()
68
 * @method static \Dimtrovich\Validation\Rules\Ean                   ean(array $lengths = [8, 13])
69
 * @method static \Dimtrovich\Validation\Rules\Email                 email()
70
 * @method static \Dimtrovich\Validation\Rules\EndWith               endWith()
71
 * @method static \Dimtrovich\Validation\Rules\Enum                  enum(string $type = null)
72
 * @method static \Dimtrovich\Validation\Rules\EvenNumber            evenNumber()
73
 * @method static \Dimtrovich\Validation\Rules\Ext                   ext()
74
 * @method static \Rakit\Validation\Rules\Extension                  extension()
75
 * @method static \Dimtrovich\Validation\Rules\File                  file()
76
 * @method static \Dimtrovich\Validation\Rules\TypeFloat             float()
77
 * @method static \Dimtrovich\Validation\Rules\Fullname              fullname()
78
 * @method static \Dimtrovich\Validation\Rules\Gt                    gt()
79
 * @method static \Dimtrovich\Validation\Rules\Gte                   gte()
80
 * @method static \Dimtrovich\Validation\Rules\Gtin                  gtin(array $lengths = [8, 12, 13, 14])
81
 * @method static \Dimtrovich\Validation\Rules\Hash                  hash(string $algo, bool $allowUppercase = false)
82
 * @method static \Dimtrovich\Validation\Rules\Hashtag               hashtag()
83
 * @method static \Dimtrovich\Validation\Rules\Hex                   hex()
84
 * @method static \Dimtrovich\Validation\Rules\Hexcolor              hexcolor()
85
 * @method static \Dimtrovich\Validation\Rules\Htmlclean             htmlclean()
86
 * @method static \Dimtrovich\Validation\Rules\Htmltag               htmltag()
87
 * @method static \Dimtrovich\Validation\Rules\Iban                  iban(array|string $countries = [])
88
 * @method static \Dimtrovich\Validation\Rules\Image                 image()
89
 * @method static \Dimtrovich\Validation\Rules\Imei                  imei()
90
 * @method static \Rakit\Validation\Rules\In                         in()
91
 * @method static \Dimtrovich\Validation\Rules\InArray               inArray()
92
 * @method static \Dimtrovich\Validation\Rules\TypeInstanceOf        instanceOf(string $class_name)
93
 * @method static \Rakit\Validation\Rules\Integer                    integer()
94
 * @method static \Rakit\Validation\Rules\Ip                         ip()
95
 * @method static \Rakit\Validation\Rules\Ipv4                       ipv4()
96
 * @method static \Rakit\Validation\Rules\Ipv6                       ipv6()
97
 * @method static \Dimtrovich\Validation\Rules\Isbn                  isbn(array $lengths = [10, 13])
98
 * @method static \Rakit\Validation\Rules\Issn                       issn()
99
 * @method static \Rakit\Validation\Rules\Json                       json()
100
 * @method static \Dimtrovich\Validation\Rules\Jwt                   jwt()
101
 * @method static \Dimtrovich\Validation\Rules\Kebabcase             kebabcase()
102
 * @method static \Dimtrovich\Validation\Rules\Length                length(int $length)
103
 * @method static \Rakit\Validation\Rules\Lowercase                  lowercase()
104
 * @method static \Dimtrovich\Validation\Rules\Lt                    lt()
105
 * @method static \Dimtrovich\Validation\Rules\Lte                   lte()
106
 * @method static \Dimtrovich\Validation\Rules\MacAddress            macAddress()
107
 * @method static \Dimtrovich\Validation\Rules\Max                   max()
108
 * @method static \Dimtrovich\Validation\Rules\Mimes                 mimes(array $allowed_types)
109
 * @method static \Dimtrovich\Validation\Rules\Mimetypes             mimetypes(array $allowed_types)
110
 * @method static \Dimtrovich\Validation\Rules\Min                   min()
111
 * @method static \Dimtrovich\Validation\Rules\Missing               missing()
112
 * @method static \Dimtrovich\Validation\Rules\MissingIf             missingIf()
113
 * @method static \Dimtrovich\Validation\Rules\MissingUnless         missingUnless()
114
 * @method static \Dimtrovich\Validation\Rules\MissingWith           missingWith()
115
 * @method static \Dimtrovich\Validation\Rules\MissingWithAll        missingWithAll()
116
 * @method static \Dimtrovich\Validation\Rules\MultipleOf            multipleOf()
117
 * @method static \Rakit\Validation\Rules\NotIn                      notIn()
118
 * @method static \Dimtrovich\Validation\Rules\NotInArray            notInArray()
119
 * @method static \Dimtrovich\Validation\Rules\NotRegex              notRegex()
120
 * @method static \Rakit\Validation\Rules\Nullable                   nullable()
121
 * @method static \Rakit\Validation\Rules\Numeric                    numeric()
122
 * @method static \Dimtrovich\Validation\Rules\OddNumber             oddNumber()
123
 * @method static \Dimtrovich\Validation\Rules\Pascalcase            pascalcase()
124
 * @method static \Dimtrovich\Validation\Rules\Password              password(?int $min = null)
125
 * @method static \Dimtrovich\Validation\Rules\Pattern               pattern()
126
 * @method static \Dimtrovich\Validation\Rules\Phone                 phone(?string $country_code = null)
127
 * @method static \Dimtrovich\Validation\Rules\Port                  port()
128
 * @method static \Dimtrovich\Validation\Rules\Postalcode            postalcode(string $country_code)
129
 * @method static \Rakit\Validation\Rules\Present                    present()
130
 * @method static \Dimtrovich\Validation\Rules\PresentIf             presentIf(string $field, array $values)
131
 * @method static \Dimtrovich\Validation\Rules\PresentUnless         presentUnless(string $field, array $values)
132
 * @method static \Dimtrovich\Validation\Rules\PresentWith           presentWith(array $fields)
133
 * @method static \Dimtrovich\Validation\Rules\PresentWithAll        presentWithAll(array $fields)
134
 * @method static \Dimtrovich\Validation\Rules\Prohibited            prohibited()
135
 * @method static \Dimtrovich\Validation\Rules\ProhibitedIf          prohibitedIf()
136
 * @method static \Dimtrovich\Validation\Rules\ProhibitedUnless      prohibitedUnless()
137
 * @method static \Dimtrovich\Validation\Rules\Prohibits             prohibits()
138
 * @method static \Rakit\Validation\Rules\Regex                      regex()
139
 * @method static \Rakit\Validation\Rules\Required                   required()
140
 * @method static \Rakit\Validation\Rules\RequiredIf                 requiredIf()
141
 * @method static \Rakit\Validation\Rules\RequiredIfAccepted         requiredIfAccepted(string $field)
142
 * @method static \Rakit\Validation\Rules\RequiredIfDeclined         requiredIfDeclined(string $field)
143
 * @method static \Rakit\Validation\Rules\RequiredUnless             requiredUnless()
144
 * @method static \Rakit\Validation\Rules\RequiredWith               requiredWith()
145
 * @method static \Rakit\Validation\Rules\RequiredWithout            requiredWithout()
146
 * @method static \Rakit\Validation\Rules\RequiredWithoutAll         requiredWithoutAll()
147
 * @method static \Rakit\Validation\Rules\Same                       same(string $field)
148
 * @method static \Dimtrovich\Validation\Rules\Semver                semver()
149
 * @method static \Dimtrovich\Validation\Rules\Size                  size()
150
 * @method static \Dimtrovich\Validation\Rules\SlashEndOfString      slashEndOfString()
151
 * @method static \Dimtrovich\Validation\Rules\Slug                  slug()
152
 * @method static \Dimtrovich\Validation\Rules\Snakecase             snakecase()
153
 * @method static \Dimtrovich\Validation\Rules\StartWith             startWith()
154
 * @method static \Dimtrovich\Validation\Rules\TypeString            string()
155
 * @method static \Dimtrovich\Validation\Rules\Time                  time()
156
 * @method static \Dimtrovich\Validation\Rules\Timezone              timezone()
157
 * @method static \Rakit\Validation\Rules\Titlecase                  titlecase()
158
 * @method static \Dimtrovich\Validation\Rules\Ulid                  ulid()
159
 * @method static \Rakit\Validation\Rules\UploadedFile               uploadedFile()
160
 * @method static \Rakit\Validation\Rules\Uppercase                  uppercase()
161
 * @method static \Rakit\Validation\Rules\Url                        url()
162
 * @method static \Dimtrovich\Validation\Rules\Username              username()
163
 * @method static \Dimtrovich\Validation\Rules\Uuid                  uuid()
164
 * @method static \Dimtrovich\Validation\Rules\vatid                 vatid()
165
 */
166
abstract class Rule
167
{
168
    /**
169
     * Create and return a validator on the fly
170
     *
171
     * @return \Rakit\Validation\Rule
172
     */
173
    public static function __callStatic(string $name, array $arguments = [])
174
    {
175 20
        $name = Text::snake($name);
176
177 20
        return Validator::rule($name, ...$arguments);
178
    }
179
}
180