ไลบรารีการตรวจสอบล่าสุดที่คุณต้องการ!
การติดตั้ง
เกี่ยวกับ mighty
เริ่มต้นอย่างรวดเร็ว
เอ็มเวล
ตัวอย่าง
ข้อจำกัด
การตรวจสอบ
เอกสารประกอบ
ข้อมูลจำเพาะ
บันทึกการเปลี่ยนแปลง
หากคุณชอบโครงการนี้และต้องการสนับสนุนการพัฒนา โปรดยินดีเป็นอย่างยิ่ง!
การสาธิตอันยิ่งใหญ่" style="max-width: 100%;">
composer require marwanalsoltany/ mighty
การตรวจสอบความถูกต้องเป็นงานทั่วไปในเว็บแอปพลิเคชันใดๆ ข้อมูลที่ส่งไปยังแอปพลิเคชันผ่านแบบฟอร์ม —หรืออินพุตประเภทใดก็ตามสำหรับเรื่องนั้น—จะต้องได้รับการตรวจสอบตามกฎเกณฑ์เสมอ mighty สามารถจัดการได้อย่างง่ายดายและแสดงออก
mighty เป็นไลบรารีการตรวจสอบที่รวดเร็ว ทรงพลัง แข็งแกร่ง และใช้งานง่าย ซึ่งใช้งานได้อย่างสนุกสนาน ทำให้การตรวจสอบความถูกต้องของข้อมูลเป็นเรื่องง่าย ด้วยพลังของ Validation Expression Language (mVEL) mighty ทำให้มันไม่เหมือนกับสิ่งที่คุณเคยเห็นมาก่อน ด้วยวิธีการตรวจสอบความถูกต้องและกฎในตัวมากกว่า 250 กฎ ไม่มีอะไรที่คุณไม่สามารถตรวจสอบได้ด้วยวิธีการที่ชัดเจนและกะทัดรัด พูดง่ายๆ ก็คือ การตรวจสอบสเตียรอยด์ mighty ! มันเป็นไลบรารีการตรวจสอบสุดท้ายที่คุณต้องการ
mighty มีวิธีการที่แตกต่างกันหลายวิธีในการตรวจสอบข้อมูล กรณีการใช้งานที่พบบ่อยที่สุดคือการตรวจสอบข้อมูลขาเข้าผ่านคำขอ HTTP แต่แน่นอนว่าไม่ได้จำกัดอยู่เพียงเท่านี้ mighty ยังจัดเตรียมคุณลักษณะในรูปแบบของข้อจำกัดเพื่อตรวจสอบโมเดลและ/หรือวัตถุประเภทต่างๆ ได้อย่างง่ายดาย
mighty มีกฎการตรวจสอบที่สะดวกสบายมากมาย ซึ่งคุณอาจใช้เป็นกฎเดียวหรือรวมกฎเหล่านั้นเข้าด้วยกันโดยใช้ตัวดำเนินการเพื่อสร้างการตรวจสอบที่ซับซ้อนยิ่งขึ้น
หากต้องการเรียนรู้เกี่ยวกับคุณลักษณะการตรวจสอบความถูกต้องอันทรงพลังของ mighty เราจะมาตัดตรงประเด็นและดูตัวอย่างบางส่วน:
ตรวจสอบข้อมูลแบบฟอร์มโดยใช้ Validator::class
:
use MAKS mighty Validator ;
$ validator = new Validator ();
$ validator
-> setData ([
' name ' => ' John Doe ' ,
' username ' => ' john.doe ' ,
' password ' => ' Super@Secret#123 ' ,
' email ' => ' [email protected] ' ,
' hobbies ' => [ ' coding ' , ' design ' , ' sports ' ],
])
-> setValidations ([
// required&string&between:3,255
' name ' => $ validator -> validation ()-> required ()-> string ()-> between ( 3 , 255 ),
// required&string&matches:/[a-z0-9._-]/i
' username ' => $ validator -> validation ()-> required ()-> string ()-> matches ( ' /[a-z0-9._-]/i ' ),
// required&string&min:8
' password ' => $ validator -> validation ()-> required ()-> string ()-> min ( 8 ),
// required&email
' email ' => $ validator -> validation ()-> required ()-> email (),
// null^(required&array&max:5)
' hobbies ' => $ validator
-> validation ()
-> null ()
-> xor ()
-> group ( fn ( $ validation ) => $ validation
-> array ()
-> max ( 5 )
),
// null|(if:${hobbies.validations.array}&(string&min:3))
// hobby can be null or a string with at least 3 characters if hobbies is an array
' hobbies.* ' => $ validator
-> validation ()
-> null ()
-> or ()
-> group ( fn ( $ validation ) => $ validation
-> if ( ' ${hobbies.validations.array} ' )
-> open ()
-> string ()
-> min ( 3 )
-> close ()
),
])
-> validate ();
$ result = $ validator -> isOK (); // boolean result of the overall validation result
$ errors = $ validator -> getErrors (); // an array of results of validations that failed
$ results = $ validator -> getResults (); // an array of results of all validations
$ validator -> check (); // void or throws an exception with a nicely formatted message of what exactly went wrong
ตรวจสอบสถานะของวัตถุโดยใช้ Constraint::class
:
use MAKS mighty Validation Strategy ;
use MAKS mighty Validation Behavior ;
use MAKS mighty Validation Operator ;
use MAKS mighty Validation Constraint ;
use MAKS mighty Validation Constraint as Assert ;
use MAKS mighty Validation Constraint ValidatableObjectInterface ;
use MAKS mighty Validation Constraint ValidatableObjectTrait ;
class ValidatableObject implements ValidatableObjectInterface
{
use ValidatableObjectTrait;
#[ Assert Rule Equals( ' CONST ' )]
public const CONST = ' CONST ' ;
#[ Assert Rule In([ ' STATIC ' , ' VAR ' ])]
public static $ static = ' VAR ' ;
#[ Assert Rule StringConstraint]
#[ Assert Rule StringCharset( ' UTF-8 ' )]
#[ Assert Rule Between( 3 , 99 )]
public $ default = ' DEFAULT ' ;
#[ Assert Rule StringConstraint]
#[ Assert Rule StringContains( ' <element> ' )]
#[ Assert Rule Xml]
public $ xml = ' <?xml version="1.0"?><element></element> ' ;
#[ Assert Rule ArrayConstraint]
#[ Assert Shape([
' string ' => new Assert Rule Str ,
' array ' => new Assert Rule Arr ,
])]
public $ array = [
' string ' => ' value ' ,
' array ' => [],
];
#[ Assert Rule ObjectConstraint]
#[ Assert Rule ObjectIsInstanceOf(ValidatableObjectInterface::class)]
#[ Assert Valid(message: ' Not valid ' )]
public $ object ;
#[ Assert Callback( ' is_scalar ' , ' Data is not scalar ' )]
#[Constraint( ' string&min:3 ' , strategy: Strategy::FailLazy, messages: [
' string ' => ' Must be string. ' ,
' min ' => ' Must be longer than ${@arguments.0}. ' ,
])]
public function getDefault ()
{
return $ this -> default ;
}
#[ Assert Compound([
new Assert Rule Str ,
new Assert Compound ([
new Assert Rule Arr ,
new Assert Compound ([
new Assert Rule Blank ,
], Operator::Not),
], Operator::And),
], Operator::Xor, Behavior::Pessimistic, Strategy::FailLazy)]
public static function getStaticProperty ()
{
return static :: $ static ;
}
}
$ object = new ValidatableObject ();
$ result = $ object -> isValid (); // boolean result of the overall validation result
$ results = $ object -> validate (); // an array of results of all validations
$ object -> check (); // void or throws an exception with a nicely formatted message of what exactly went wrong
ตัวอย่างของผลลัพธ์ของการตรวจสอบวัตถุที่ตรวจสอบได้จะมีลักษณะดังนี้:
// check out the previous snippet see the used constraints
$ object = new ValidatableObject ();
$ object -> object = new class implements ValidatableObjectInterface {
use ValidatableObjectTrait;
// some properties and their validation constraints ...
};
$ object -> default = null ; // this must be a string
$ object -> check ();
// ValidationFailedException::class
// Data failed to pass the validation.
// (01) The value (null) of the "ValidatableObject->default" property failed to pass the validation [string]. Problem: Value must be a string.
// (02) The value (null) of the "ValidatableObject->default" property failed to pass the validation [string.charset:"UTF-8"]. Problem: Value must be encoded in one of the following charsets: ["UTF-8"].
// (03) The value (null) of the "ValidatableObject->default" property failed to pass the validation [between:3,99]. Problem: Value must be between 3 and 99 or have a value/count/length that is between 3 and 99.
// (04) The return value (null) of the "ValidatableObject->getDefault()" method failed to pass the validation [callback]. Problem: Data is not scalar.
// (05) The return value (null) of the "ValidatableObject->getDefault()" method failed to pass the validation [string&min:3]. Problems: Must be string; Must be longer than 3.
ตรวจสอบ ValidatableObject
และ ValidatableObjectChild
ด้วย
คำแนะนำ: สามารถดูตัวอย่างเพิ่มเติมได้ในส่วนตัวอย่าง
mighty มีแนวคิดของ Validation Expression Validation Expression ในรูปแบบที่ง่ายที่สุดเป็นเพียงสตริงที่อธิบายว่าควรตรวจสอบ mighty ของข้อมูลที่ได้รับอย่างไร สตริงเหล่านี้อิงตามข้อกำหนดภาษานิพจน์การตรวจสอบ (mVEL) mighty mVEL ค่อนข้างเรียบง่าย มนุษย์สามารถอ่านได้ และจัดการได้ง่าย เป็นการผสมผสานระหว่างแนวคิดและ/หรือข้อกำหนดที่กำหนดไว้อย่างดี เช่น พีชคณิตบูลีน, ตัวดำเนินการ Bitwise, JSON และ CSV
ดังนั้น Validation Expression อาจถูกกำหนดให้เป็นสตริงที่มีกฎบางอย่างคั่นด้วย Bitwise Operators ซึ่งจะสร้างนิพจน์ที่เมื่อประเมินโดยใช้ตรรกะ บูลีนพีชคณิต จะส่งผลให้เกิดผลลัพธ์สุดท้ายของการตรวจสอบ กฎสามารถมีอาร์กิวเมนต์ได้ ประเภทของอาร์กิวเมนต์เหล่านี้สามารถแสดงได้โดยใช้กฎเดียวกันของประเภท JSON กฎสามารถมีหลายอาร์กิวเมนต์ได้ และอาร์กิวเมนต์จะถูกคั่นด้วยเครื่องหมายจุลภาค ( CSV )
ตัวอย่างเช่น required&string&between:2,255|null
เป็นนิพจน์การตรวจสอบความถูกต้อง นิพจน์นี้สามารถเข้าใจได้ดังต่อไปนี้:
required
ยืนยันว่ามีอินพุตอยู่string
ยืนยันว่าอินพุตเป็นสตริงbetween:2,255
ยืนยันว่าอินพุตเป็นสตริงที่มีความยาวระหว่าง 2 ถึง 255null
ยืนยันว่าอินพุตเป็นโมฆะ นิพจน์ required&string&between:2,255|null
หมายความว่าต้องมีอินพุตอยู่ และ ของประเภทสตริง; และ ความยาวระหว่าง 2 ถึง 255; หรือ เป็นโมฆะ ดังนั้นจึงเป็นสตริงที่เป็นโมฆะซึ่งเมื่อไม่เป็นโมฆะจะต้องมีความยาวระหว่าง 2 ถึง 255 อักขระ
สมมติว่าอินพุตคือ " mighty is Awesome!"
ผลลัพธ์ของนิพจน์ required&string&between:2,255|null
กับอินพุตนั้นจะเป็น 1&1&1|0
ซึ่งจะส่งผลให้ 1
ซึ่งเป็น true
หากอินพุตเป็น null
ผลลัพธ์จะเป็น 0&0&0|1
= 1
หากอินพุตเป็น X
ผลลัพธ์ จะเป็น 0&0&0|0
= 0
ฯลฯ ...
แตกต่างจากการใช้งานการตรวจสอบความถูกต้องอื่นๆ แนวคิดของ พีชคณิตบูลีน ที่ใช้ ตัวดำเนินการ Bitwise ให้ความเป็นไปได้ในการสร้างการตรวจสอบที่ซับซ้อนซึ่งสามารถอ่านได้ง่ายและกะทัดรัด ในขณะเดียวกันก็รักษากฎให้มีจำนวนน้อยที่สุด นำตรรกะที่มีอยู่กลับมาใช้ใหม่ในลักษณะย้อนกลับหรือแบบผสม และสุดท้ายก็รักษา ฐานโค้ดเป็นแบบ DRY เท่าที่จะทำได้ ประโยชน์สามารถสรุปได้ในประเด็นต่อไปนี้:
~
) เพื่อทำสิ่งที่ตรงกันข้ามกับกฎปกติ&
), OR ing (โดยใช้ |
) หรือ XOR ing (โดยใช้ ^
) กฎง่ายๆ สองกฎขึ้นไป(
) และ CLOSE (โดยใช้ )
)?
คำนำหน้า)!
คำนำหน้า)[macro]
นอกจากนี้ แนวคิดของ JSON ยังช่วยรับประกันความปลอดภัยของประเภทข้อมูลอาร์กิวเมนต์ และแนวคิดของ CSV ยังช่วยให้แน่ใจว่ารายการอาร์กิวเมนต์มีกฎการแยกวิเคราะห์ที่ชัดเจน
สิ่งที่ดีที่สุดคือคุณไม่จำเป็นต้องจำกฎทั้งหมดหรือไวยากรณ์ Validation Expression Language คลาส Validation
เป็นอินเทอร์เฟซที่คล่องแคล่วซึ่งสามารถใช้ในการสร้างนิพจน์การตรวจสอบได้ ทราบกฎเกณฑ์ mighty ทั้งหมดที่มีอยู่ และรองรับ IDE-Intellisense เต็มรูปแบบเพื่อให้ง่ายอย่างที่สุด ตัวอย่างเช่น:
use MAKS mighty Validation ;
// the validation expression: `required&string&between:2,255|null`
// can be constructed using the Validation::class as follows:
$ validation = ( new Validation ())-> required ()-> string ()-> between ( 2 , 255 )-> or ()-> null (); // AND is the default operator
// or statically:
$ validation = Validation:: required ()-> string ()-> between ( 2 , 255 )-> or ()-> null ();
ข้อเท็จจริง: โดยปกติแล้ว มักจะต้องใช้คำมากกว่าในการอธิบายว่านิพจน์การตรวจสอบทำหน้าที่อะไรมากกว่านิพจน์การตรวจสอบนั้นเอง!
นี่คือตัวอย่างบางส่วนของสถานการณ์ในโลกแห่งความเป็นจริง:
use MAKS mighty Validator ;
$ result = ( $ validator = new Validator ())
-> validateOne (
' 123 ' ,
$ validator
-> validation ()
// can be an integer or float or a string that is numeric
// this example is only for demonstration only,
// the same result can be achieved using numeric() only
-> integer ()-> or ()-> float ()-> or ()-> group (
fn ( $ validation ) => $ validation -> string ()-> and ()-> numeric ()
)
)
-> toArray ();
// $result would look something like this:
[
' value ' => ' 123 ' ,
' result ' => true ,
' validations ' => [
' integer ' => false ,
' float ' => false ,
' string ' => true ,
' numeric ' => true ,
],
' errors ' => [],
' metadata ' => [
' basis ' => ' integer|float|(string&numeric) ' ,
' rules ' => ' integer|float|(string&numeric) ' ,
' expression ' => ' 0|0|(1&1) ' ,
],
];
// you can also simply use the static helper Validator::validateData($data, $validation);
use MAKS mighty Validator ;
use App Service HaveIBeenPwnedService as PasswordService ;
$ validator = new Validator ();
$ data = [
' name ' => ' John Doe ' ,
' age ' => 32 ,
' email ' => ' [email protected] ' ,
' username ' => ' john.doe ' ,
' password ' => ' Secret@123 ' ,
' image ' => ' /path/to/image.png ' ,
' submission ' => ' now ' ,
' consent ' => ' yes ' ,
' data ' => [
' nickname ' => ' JOE ' ,
' number ' => 7 ,
' hobbies ' => [
' coding ' ,
' cooking ' ,
' reading ' ,
]
],
];
$ validations = [
' name ' => $ validator -> validation ()-> required ()-> string ()-> stringCharset ([ ' UTF-8 ' , ' ASCII ' ])-> pessimistic (),
// or using mVEL => required&string&string.charset:'["UTF-8","ASCII"]'
' age ' => $ validator -> validation ()-> required ()-> integer ()-> min ( 18 ),
// or using mVEL => required&integer&min:18
' email ' => $ validator -> validation ()-> required ()-> email ()-> macro ( ' gmail ' ),
// or using mVEL => required&email&[gmail]
' username ' => $ validator -> validation ()-> required ()-> username (),
// or using mVEL => required&username
' password ' => $ validator -> validation ()-> required ()-> password ()-> callback ( fn ( $ input ) => !PasswordService:: isPwned ( $ input )),
// or using mVEL => required&password (NOTE: callback ist not possible, it requires a Validation::class instance that is bound to the Validator::class instance)
' image ' => $ validator -> validation ()-> null ()-> xor ()-> group ( fn () => $ this -> image ()-> imageDimensions ( 1920 , 1080 , ' <= ' )),
// or using mVEL => null^(image&image.dimensions:1920,1080,"<=")
' submission ' => $ validator -> validation ()-> required ()-> datetime ()-> datetimeLt ( ' 2022-12-07 ' ),
// or using mVEL => required&datetime&datetime.lt:"2022-12-07"
' consent ' => $ validator -> validation ()-> assert ( ' ${age.value} ' , 18 , ' >= ' )-> or ()-> accepted ()-> or ()-> assertEquals ( ' ${this} ' , ' granted ' )-> optimistic (),
// or using mVEL => ?assert:${age.value},18,">="|accepted|assert.equals:${this},"granted"
' data ' => $ validator -> validation ()-> required ()-> array ()-> arrayHasKey ( ' nickname ' ),
// or using mVEL => required&array&array.hasKey:"nickname"
' data.* ' => $ validator -> validation ()-> scalar ()-> or ()-> array ()-> optimistic (),
// or using mVEL => ?scalar|array
' data.nickname ' => $ validator -> validation ()-> string ()-> min ( 2 )-> max ( 32 ),
// or using mVEL => string&min:2&max:32
' data.hobbies.* ' => $ validator -> validation ()-> ifEq ( ' ${data.hobbies.validations.array} ' , false )-> or ()-> group ( fn () => $ this -> string ()-> min ( 3 )),
// or using mVEL => if.eq:${data.hobbies.validations.array},false|(string&min:3)
];
$ labels = [
' name ' => ' Name ' ,
' age ' => ' Age ' ,
' email ' => ' E-Mail ' ,
' password ' => ' Password ' ,
' image ' => ' Image ' ,
' data ' => ' Data ' ,
' data.* ' => ' Value of data ' ,
' consent ' => ' Consent ' ,
];
$ messages = [
' * ' => [ // this will be expanded for all fields
' required ' => ' ${@label} is a required field. ' ,
],
' age ' => [
' min ' => ' ${@label} must be at least ${@arguments.0}. ' ,
],
' username ' => [
' matches ' => ' ${@label} must contain letters, numbers, and the following characters ".-_" only. ' ,
],
' consent ' => [
' assert ' => ' You must be at least ${@arguments.1} years old to submit this form. ' ,
]
];
$ validator
-> setData ( $ data )
-> setValidations ( $ validations )
-> setMessages ( $ messages )
-> setLabels ( $ labels )
-> validate ();
$ results = $ validator -> getResults ();
// $result should look something like this:
[
// this will actually be a Result object
// array syntax is used here for demonstration purposes
' name ' => [
' key ' => ' name ' ,
' value ' => ' John Doe ' ,
' result ' => true ,
' validations ' => [
' required ' => true ,
' string ' => true ,
' string.charset ' => true ,
],
' errors ' => [],
' metadata ' => [
' basis ' => ' !required&string&string.charset:["UTF-8","ASCII"] ' ,
' rules ' => ' required&string&string.charset:["UTF-8","ASCII"] ' ,
' expression ' => ' 1&1&1 ' ,
],
],
// other validations ...
];
// you can also simply use the static helper Validator::validateData($data, $validations);
คำแนะนำ: เมื่อจัดเตรียมการแทนที่ข้อความให้กับ Validator::class
ขอแนะนำให้ใช้ RuleValidation::class
เพื่อตั้งค่าคีย์อาร์เรย์ คลาสนี้มีชื่อกฎในตัวที่ทรง mighty ทั้งหมดเป็นค่าคงที่ของคลาส
เครื่องมือตรวจสอบความถูกต้องสามารถขยายได้สามวิธี:
use MAKS mighty Validator ;
use MAKS mighty Rule ;
$ validator = new Validator ();
// adding a new rule
$ validator -> addRule (
( new Rule ())
-> name ( ' equals ' )
-> arguments ([ ' string ' ])
-> callback ( fn ( string $ input , mixed $ expected ): bool => $ input == $ expected )
-> parameters ([ ' @input ' , ' @arguments.0 ' ])
-> comparison ([ ' @output ' , ' === ' , true ])
-> example ( ' equals:value ' )
-> description ( ' Asserts that the input is equal to the given value. ' )
);
// adding a new rule alias
$ validator -> addRuleAlias ( ' eq ' , ' equals ' );
// adding a new rules macro
$ validator -> addRuleMacro ( ' gmail ' , ' string&email&matches:"/@gmail.com$/i" ' );
$ results = $ validator -> validateAll (
[
' name ' => ' John ' ,
' email ' => ' [email protected] ' ,
],
[
' name ' => ' eq:John ' ,
' email ' => ' required&[gmail] ' ,
]
);
// $results should look like this:
[
// items will actually be a Result object
// array syntax is used here for demonstration purposes
' name ' => [
' key ' => ' name ' ,
' value ' => ' John ' ,
' result ' => true ,
' validations ' => [
' eq ' => true ,
],
' errors ' => [],
' metadata ' => [
' basis ' => ' eq:John ' ,
' rules ' => ' eq:John ' ,
' expression ' => ' 1 ' ,
],
],
' email ' => [
' key ' => ' email ' ,
' value ' => ' [email protected] ' ,
' result ' => false ,
' validations ' => [
' required ' => true ,
' string ' => true ,
' email ' => true ,
' matches ' => false ,
],,
' errors ' => [],
' metadata ' => [
' basis ' => ' required&[gmail] ' ,
' rules ' => ' required&(string&email&matches:"/@gmail.com$/i") ' ,
' expression ' => ' 1&(1&1&0) ' ,
],
],
];
คำแนะนำ: ตรวจสอบ rules
เริ่มต้น aliases
และ macros
ของ Validator
เพื่อดูตัวอย่างเพิ่มเติม
mighty ประกอบด้วยกฎ/คุณลักษณะมากกว่า 250 รายการที่สามารถใช้เพื่อตรวจสอบข้อมูลหรือค่าของคลาส ค่าคงที่ของคลาส คุณสมบัติ และเมธอด
คุณลักษณะจะแบ่งออกเป็นสามกลุ่มหลัก:
แอตทริบิวต์ข้อจำกัดทั่วไปจะอยู่ภายใต้เนมสเปซ MAKS mighty Validation
ปัจจุบันกลุ่มนี้ประกอบด้วยแอตทริบิวต์เดียวเท่านั้น นั่นคือแอตทริบิวต์ข้อ Constraint
แอ็ตทริบิวต์นี้ใช้ Validation Expression เพื่อตรวจสอบข้อมูลที่นำไปใช้ นอกจากนี้ยังเป็นคลาสพื้นฐานสำหรับคุณลักษณะอื่นๆ ทั้งหมดอีกด้วย
แอตทริบิวต์ข้อจำกัดพิเศษจะอยู่ภายใต้เนมสเปซ MAKS mighty ValidationConstraint
กลุ่มนี้มีแอ็ตทริบิวต์ที่ทำงานเฉพาะซึ่งพร้อมใช้งานในบริบทของแอ็ตทริบิวต์เท่านั้น ประกอบด้วยคุณลักษณะดังต่อไปนี้:
Rule
: คุณลักษณะนี้ใช้เพื่อตรวจสอบความถูกต้องของข้อมูลโดยใช้กฎการตรวจสอบเดียว นอกจากนี้ยังเป็นคลาสพื้นฐานสำหรับแอตทริบิวต์ทั้งหมดในกลุ่มแอตทริบิวต์กฎข้อจำกัดCallback
: คุณลักษณะนี้ใช้เพื่อตรวจสอบข้อมูลใด ๆ โดยใช้ฟังก์ชันโทรกลับValid
: คุณลักษณะนี้ใช้เพื่อตรวจสอบความถูกต้องของวัตถุที่ตรวจสอบได้Shape
: คุณลักษณะนี้ใช้เพื่อตรวจสอบรูปร่างของอาร์เรย์หรือวัตถุ โปรดทราบว่านี่เป็นแอตทริบิวต์เดียวที่ตรวจสอบชุดของค่า (ข้อมูลที่มีโครงสร้าง) แทนที่จะเป็นค่าเดียวCompound
: คุณลักษณะนี้ใช้เพื่อรวมชุดข้อจำกัดเพื่อสร้าง Validation Expression ข้อจำกัดสามารถรวมเข้าด้วยกันได้โดยใช้ตัวดำเนินการใดๆ และยังสามารถมีพฤติกรรมได้ด้วย มันทำหน้าที่เป็นวิธีเชิงวัตถุเพื่อสร้าง Validation Expression หมายเหตุ: โปรดทราบว่าข้อจำกัดที่ได้รับอนุญาตให้ใช้กับแอตทริบิวต์ Shape::class
และ Compound::class
ต้องเป็นอินสแตนซ์ที่แท้จริงของ Constraint::class
, Rule::class
หรือ Compound::class
ไม่อนุญาตให้ Callback::class
, Valid::class
หรือ Shape::class
ของ กลุ่มแอตทริบิวต์ข้อจำกัดพิเศษ หากคุณมีความต้องการฟีเจอร์นี้ ให้เปิดปัญหาแล้วเราจะหารือเกี่ยวกับการใช้งานฟีเจอร์ดังกล่าว
แอตทริบิวต์ข้อจำกัดของกฎจะอยู่ภายใต้เนมสเปซ MAKS mighty ValidationConstraintRule
กลุ่มนี้มีแอตทริบิวต์ที่ยึดตามกฎการตรวจสอบเดียว ประกอบด้วยคุณลักษณะส่วนใหญ่ที่ mighty ประทานให้ โปรดดูส่วนการตรวจสอบความถูกต้องสำหรับรายการทั้งหมด
mighty มีรายการข้อจำกัดในตัวมากมาย เป็นเรื่องยากมากที่คุณจะต้องการสิ่งอื่นนอกเหนือจากที่ mighty มีให้ อย่างไรก็ตาม บางครั้งความต้องการก็เกิดขึ้นสำหรับข้อจำกัดแบบกำหนดเอง ซึ่งเป็นวิธีที่คุณสามารถบรรลุสิ่งนั้นได้:
<?php
declare (strict_types= 1 );
namespace App Validation Constraint ;
use Attribute ;
use MAKS mighty Rule ;
use MAKS mighty Result ;
use MAKS mighty Validation Strategy ;
use MAKS mighty Validation Constraint ;
use MAKS mighty Validation Constraint ValidatesOne ;
// use the ValidatesMany interface if your Constraint returns a collection of Result objects
use MAKS mighty Validation Constraint ValidatesMany ;
#[Attribute(
Attribute:: TARGET_PROPERTY |
Attribute:: TARGET_METHOD
)]
class MyCustomConstraint extends Constraint implements ValidatesOne
{
public function __construct (
? string $ message = null ,
Strategy $ strategy = Strategy::FailFast,
) {
parent :: __construct (
validation: ' app.myCustomConstraint ' ,
messages: [ ' app.myCustomConstraint ' => $ message ],
strategy: $ strategy
);
}
public function validate ( mixed $ value = null ): Result
{
// it is really up to you, how you handle this
// you will just work with a normal mighty Validator
// here we're just preparing the data to pass to the Validator
$ name = '' ;
$ data = [ $ name => $ value ];
$ validations = [ $ name => $ this -> validation ];
$ messages = [ $ name => [ $ this -> validation => $ this -> messages [ $ this -> validation ] ?? null ]];
$ labels = [ $ name => static ::class];
// you can reuse the built-in rules or
// add you own Rule that handles your custom logic
$ result = $ this
-> getValidator ()
-> addRule (
// see MAKS mighty Rule for more info
( new Rule ())
-> setName ( ' app.myCustomConstraint ' )
-> setCallback ( static fn ( $ input ) => $ input /* here comes your logic */ )
-> setParameters ([ ' @input ' ]) // rule callback dependencies
-> setMessage ( ' ${@label} must follow my custom constraint validation. ' ) // this is the default message
)
-> setData ( $ data )
-> setValidations ( $ validations )
-> setMessages ( $ messages )
-> setLabels ( $ labels )
-> validate ();
return $ result [ $ name ]; // if you implement ValidatesMany, you will just return $result
}
}
หมายเหตุ: ข้อจำกัดแบบกำหนดเองถือเป็นส่วนหนึ่งของ กลุ่มแอตทริบิวต์ข้อจำกัดพิเศษ (เช่น ไม่อนุญาตให้ใช้กับ/ภายในข้อจำกัด Shape::class
และ Compound::class
constraints)
ตารางต่อไปนี้แสดงรายการกฎที่มีอยู่ทั้งหมด รวมถึงแอตทริบิวต์และวิธีที่เทียบเท่า:
Validation::class
Constraint::class
และ Constraint/Rule/*
เลขที่ | กฎ | คำอธิบาย | คุณสมบัติ/วิธีการ |
---|---|---|---|
001 | ชื่อ: null การใช้งาน: null | ยืนยันว่าอินพุตเป็นโมฆะ | คุณลักษณะ:NullConstraint::class วิธี: Validation::null() |
002 | ชื่อ: boolean การใช้งาน: boolean | ยืนยันว่าอินพุตเป็นบูลีน | คุณลักษณะ:Boolean::class วิธี: Validation::boolean() |
003 | ชื่อ: integer การใช้งาน: integer | ยืนยันว่าอินพุตเป็นจำนวนเต็ม | คุณลักษณะ:Integer::class วิธี: Validation::integer() |
004 | ชื่อ: float การใช้งาน: float | ยืนยันว่าอินพุตเป็นแบบลอย | คุณลักษณะ:FloatConstraint::class วิธี: Validation::float() |
005 | ชื่อ: numeric การใช้งาน: numeric | ยืนยันว่าอินพุตเป็นตัวเลข | คุณลักษณะ:NumericConstraint::class วิธี: Validation::numeric() |
006 | ชื่อ: string การใช้งาน: string | ยืนยันว่าอินพุตเป็นสตริง | คุณลักษณะ:StringConstraint::class วิธี: Validation::string() |
007 | ชื่อ: scalar การใช้งาน: scalar | ยืนยันว่าอินพุตเป็นสเกลาร์ | คุณลักษณะ:Scalar::class วิธี: Validation::scalar() |
008 | ชื่อ: array การใช้งาน: array | ยืนยันว่าอินพุตเป็นอาร์เรย์ | คุณลักษณะ:ArrayConstraint::class วิธี: Validation::array() |
009 | ชื่อ: object การใช้งาน: object | ยืนยันว่าอินพุตเป็นวัตถุ | คุณลักษณะ:ObjectConstraint::class วิธี: Validation::object() |
010 | ชื่อ : callable การใช้งาน: callable | ยืนยันว่าอินพุตสามารถเรียกได้ | คุณลักษณะ:CallableConstraint::class วิธี: Validation::callable() |
011 | ชื่อ: iterable การใช้งาน: iterable | ยืนยันว่าอินพุตสามารถทำซ้ำได้ | คุณลักษณะ:IterableConstraint::class วิธี: Validation::iterable() |
012 | ชื่อ: countable การใช้งาน: countable | ยืนยันว่าอินพุตสามารถนับได้ | คุณลักษณะ:Countable::class วิธี: Validation::countable() |
013 | ชื่อ: resource การใช้งาน: resource | ยืนยันว่าอินพุตเป็นทรัพยากร | คุณลักษณะ:ResourceConstraint::class วิธี: Validation::resource() |
014 | ชื่อ: type การใช้งาน: type:'["int","float"]' | ยืนยันว่าอินพุตเป็นหนึ่งในประเภทที่กำหนด | คุณลักษณะ:Type::class วิธี: Validation::type(string|array $type) |
015 | ชื่อ: type.debug การใช้งาน: type.debug:string | ยืนยันว่าอินพุตเป็นประเภทที่กำหนดโดยใช้ get_debug_type() | คุณลักษณะ:TypeDebug::class วิธี: Validation::typeDebug(string $type) |
016 | ชื่อ: alpha การใช้งาน: alpha | ยืนยันว่าอินพุตประกอบด้วยอักขระตัวอักษรเท่านั้น | คุณลักษณะ:Alpha::class วิธี: Validation::alpha() |
017 | ชื่อ: alnum การใช้งาน: alnum | ยืนยันว่าอินพุตประกอบด้วยอักขระตัวอักษรและตัวเลขเท่านั้น | คุณลักษณะ:Alnum::class วิธี: Validation::alnum() |
018 | ชื่อ: lower การใช้งาน: lower | ยืนยันว่าอินพุตประกอบด้วยอักขระตัวพิมพ์เล็กเท่านั้น | คุณลักษณะ:Lower::class วิธี: Validation::lower() |
019 | ชื่อ: upper การใช้งาน: upper | ยืนยันว่าอินพุตประกอบด้วยอักขระตัวพิมพ์ใหญ่เท่านั้น | คุณลักษณะ:Upper::class วิธี: Validation::upper() |
020 | ชื่อ: cntrl การใช้งาน: cntrl | ยืนยันว่าอินพุตประกอบด้วยอักขระควบคุมเท่านั้น | คุณลักษณะ:Cntrl::class วิธี: Validation::cntrl() |
021 | ชื่อ: space การใช้งาน: space | ยืนยันว่าอินพุตประกอบด้วยอักขระช่องว่างเท่านั้น | คุณลักษณะ:Space::class วิธี: Validation::space() |
022 | ชื่อ: punct การใช้: punct | ยืนยันว่าอินพุตประกอบด้วยอักขระเครื่องหมายวรรคตอนเท่านั้น | คุณลักษณะ:Punct::class วิธี: Validation::punct() |
023 | ชื่อ: graph การใช้งาน: graph | ยืนยันว่าอินพุตประกอบด้วยอักขระกราฟิกเท่านั้น (อักขระที่สร้างเอาต์พุตที่มองเห็นได้) | คุณลักษณะ:Graph::class วิธี: Validation::graph() |
024 | ชื่อ : print การใช้งาน: print | ยืนยันว่าอินพุตประกอบด้วยอักขระที่สามารถพิมพ์ได้เท่านั้น | คุณลักษณะ:PrintConstraint::class วิธี: Validation::print() |
025 | ชื่อ: digit การใช้งาน: digit | ยืนยันว่าอินพุตประกอบด้วยตัวเลขเท่านั้น (อักขระตัวเลข) | คุณลักษณะ:Digit::class วิธี: Validation::digit() |
026 | ชื่อ: xdigit การใช้งาน: xdigit | ยืนยันว่าอินพุตแสดงเลขฐานสิบหก | คุณลักษณะ:Xdigit::class วิธี: Validation::xdigit() |
027 | ชื่อ: booleanLike การใช้งาน: booleanLike | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นบูลีนได้ (TRUE: true, "true", "1", "on", "yes"; FALSE: false, "false", "0", "off" , "ไม่", "", null) | คุณลักษณะ:BooleanLike::class วิธี: Validation::booleanLike() |
028 | ชื่อ: integerLike การใช้งาน: integerLike:0,100 | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นจำนวนเต็มภายในช่วงที่ระบุ | คุณลักษณะ:IntegerLike::class วิธี: Validation::integerLike(int $min = PHP_INT_MIN, int $max = PHP_INT_MAX) |
029 | ชื่อ: integerLike.allowOctal การใช้งาน: integerLike.allowOctal:0,100 | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นจำนวนเต็มภายในช่วงที่ระบุและสามารถอยู่ในรูปแบบฐานแปดได้ | คุณลักษณะ:IntegerLikeAllowOctal::class วิธี: Validation::integerLikeAllowOctal(int $min = PHP_INT_MIN, int $max = PHP_INT_MAX) |
030 | ชื่อ: integerLike.allowHex การใช้งาน: integerLike.allowHex:0,100 | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นจำนวนเต็มภายในช่วงที่ระบุและสามารถอยู่ในรูปแบบเลขฐานสิบหกได้ | คุณลักษณะ:IntegerLikeAllowHex::class วิธี: Validation::integerLikeAllowHex(int $min = PHP_INT_MIN, int $max = PHP_INT_MAX) |
031 | ชื่อ: floatLike การใช้งาน: floatLike:1.0,100.0 | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นแบบทศนิยมภายในช่วงที่ระบุ | คุณลักษณะ:FloatLike::class วิธี: Validation::floatLike(float $min = PHP_FLOAT_MIN, float $max = PHP_FLOAT_MAX) |
032 | ชื่อ: floatLike.allowThousands การใช้งาน: floatLike.allowThousands:1.0,100.0 | ยืนยันว่าอินพุตเป็นค่าที่สามารถแยกวิเคราะห์เป็นแบบทศนิยมภายในช่วงที่ระบุ | คุณลักษณะ:FloatLikeAllowThousands::class วิธี: Validation::floatLikeAllowThousands(float $min = PHP_FLOAT_MIN, float $max = PHP_FLOAT_MAX) |
033 | ชื่อ: regexp การใช้งาน: regexp:"/[az]/i" | ยืนยันว่าอินพุตตรงกับนิพจน์ทั่วไปที่เข้ากันได้กับ Perl | คุณลักษณะ:Regexp::class วิธี: Validation::regexp(string $pattern) |
034 | ชื่อ: ip การใช้งาน: ip | ยืนยันว่าอินพุตเป็นที่อยู่ IP | คุณลักษณะ:Ip::class วิธี: Validation::ip() |
035 | ชื่อ: ip.v4 การใช้งาน: ip.v4 | ยืนยันว่าอินพุตเป็นที่อยู่ IPv4 | คุณลักษณะ:IpV4::class วิธี: Validation::ipV4() |
036 | ชื่อ: ip.v6 การใช้งาน: ip.v6 | ยืนยันว่าอินพุตเป็นที่อยู่ IPv6 | คุณลักษณะ:IpV6::class วิธี: Validation::ipV6() |
037 | ชื่อ: ip.notReserved การใช้งาน: ip.notReserved | ยืนยันว่าอินพุตเป็นที่อยู่ IP ที่ไม่อยู่ในช่วง IP ที่สงวนไว้ | คุณลักษณะ:IpNotReserved::class วิธี: Validation::ipNotReserved() |
038 | ชื่อ: ip.notPrivate การใช้งาน: ip.notPrivate | ยืนยันว่าอินพุตเป็นที่อยู่ IP ที่ไม่อยู่ในช่วง IP ส่วนตัว | คุณลักษณะ:IpNotPrivate::class วิธี: Validation::ipNotPrivate() |
039 | ชื่อ: mac การใช้งาน: mac | ยืนยันว่าอินพุตเป็นที่อยู่ MAC | คุณลักษณะ:Mac::class วิธี: Validation::mac() |
040 | ชื่อ: url การใช้งาน: url | ยืนยันว่าอินพุตเป็น URL | คุณลักษณะ:Url::class วิธี: Validation::url() |
041 | ชื่อ: url.withPath การใช้งาน: url.withPath | ยืนยันว่าอินพุตเป็น URL ที่มีเส้นทาง | คุณลักษณะ:UrlWithPath::class วิธี: Validation::urlWithPath() |
042 | ชื่อ: url.withQuery การใช้งาน: url.withQuery | ยืนยันว่าอินพุตเป็น URL ที่มีคำถาม | คุณลักษณะ:UrlWithQuery::class วิธี: Validation::urlWithQuery() |
043 | ชื่อ: email การใช้งาน: email | ยืนยันว่าอินพุตเป็นที่อยู่อีเมล | คุณลักษณะ:Email::class วิธี: Validation::email() |
044 | ชื่อ: email.withUnicode การใช้งาน: email.withUnicode | ยืนยันว่าอินพุตเป็นที่อยู่อีเมล (อนุญาตให้ใช้ Unicode) | คุณลักษณะ:EmailWithUnicode::class วิธี: Validation::emailWithUnicode() |
045 | ชื่อ: domain การใช้งาน: domain | ยืนยันว่าอินพุตเป็นโดเมน | คุณลักษณะ:Domain::class วิธี: Validation::domain() |
046 | ชื่อ: domain.isActive การใช้งาน: domain.isActive | ยืนยันว่าอินพุตเป็นโดเมนที่ใช้งานอยู่ ทำงานร่วมกับโดเมนและอีเมล | คุณลักษณะ:DomainIsActive::class วิธี: Validation::domainIsActive() |
047 | ชื่อ: file การใช้งาน: file | ยืนยันว่าอินพุตเป็นไฟล์ (อาจเป็นไฟล์ ลิงก์ หรือไดเร็กทอรี) | คุณลักษณะ:File::class วิธี: Validation::file() |
048 | ชื่อ: file.isFile การใช้งาน: file.isFile | ยืนยันว่าอินพุตเป็นไฟล์ | คุณลักษณะ:FileIsFile::class วิธี: Validation::fileIsFile() |
049 | ชื่อ: file.isLink การใช้งาน: file.isLink | ยืนยันว่าอินพุตเป็นลิงก์ | คุณลักษณะ:FileIsLink::class วิธี: Validation::fileIsLink() |
050 | ชื่อ: file.isDirectory การใช้งาน: file.isDirectory | ยืนยันว่าอินพุตเป็นไดเร็กทอรี | คุณลักษณะ:FileIsDirectory::class วิธี: Validation::fileIsDirectory() |
051 | ชื่อ: file.isExecutable การใช้งาน: file.isExecutable | ยืนยันว่าอินพุตเป็นไฟล์และสามารถเรียกใช้งานได้ | คุณลักษณะ:FileIsExecutable::class วิธี: Validation::fileIsExecutable() |
052 | ชื่อ: file.isWritable การใช้งาน: file.isWritable | ยืนยันว่าอินพุตเป็นไฟล์และสามารถเขียนได้ | คุณลักษณะ:FileIsWritable::class วิธี: Validation::fileIsWritable() |
053 | ชื่อ: file.isReadable การใช้งาน: file.isReadable | ยืนยันว่าอินพุตเป็นไฟล์และสามารถอ่านได้ | คุณลักษณะ:FileIsReadable::class วิธี: Validation::fileIsReadable() |
054 | ชื่อ: file.isUploaded การใช้งาน: file.isUploaded | ยืนยันว่าอินพุตเป็นไฟล์ที่อัปโหลดผ่าน HTTP POST | คุณลักษณะ:FileIsUploaded::class วิธี: Validation::fileIsUploaded() |
055 | ชื่อ: file.size การใช้งาน: file.size:1024 | ยืนยันว่าอินพุตเป็นไฟล์และขนาดเท่ากับขนาดที่กำหนดในหน่วยไบต์ | คุณลักษณะ:FileSize::class วิธี: Validation::fileSize(int $sizeInBytes) |
056 | ชื่อ: file.size.lte การใช้งาน: file.size.lte:1024 | ยืนยันว่าอินพุตเป็นไฟล์และขนาดน้อยกว่าหรือเท่ากับขนาดที่กำหนดในหน่วยไบต์ | คุณลักษณะ:FileSizeLte::class วิธี: Validation::fileSizeLte(int $sizeInBytes) |
057 | ชื่อ: file.size.gte การใช้งาน: file.size.gte:1024 | ยืนยันว่าอินพุตเป็นไฟล์และมีขนาดใหญ่กว่าหรือเท่ากับขนาดที่กำหนดในหน่วยไบต์ | คุณลักษณะ:FileSizeGte::class วิธี: Validation::fileSizeGte(int $sizeInBytes) |
058 | ชื่อ: file.dirname การใช้งาน: file.dirname:/path/to/dir | ยืนยันว่าอินพุตเป็นไฟล์และ dirname เท่ากับ dirname ที่กำหนด | คุณลักษณะ:FileDirname::class วิธี: Validation::fileDirname(string $dirname) |
059 | ชื่อ: file.basename การใช้งาน: file.basename:file.ext | ยืนยันว่าอินพุตเป็นไฟล์และชื่อฐานเท่ากับชื่อฐานที่กำหนด | คุณลักษณะ:FileBasename::class วิธี: Validation::fileBasename(string $basename) |
060 | ชื่อ: file.filename การใช้งาน: file.filename:file | ยืนยันว่าอินพุตเป็นไฟล์และชื่อไฟล์เท่ากับชื่อไฟล์ที่กำหนด | คุณลักษณะ:FileFilename::class วิธี: Validation::fileFilename(string $filename) |
061 | ชื่อ: file.extension การใช้งาน: file.extension:ext | ยืนยันว่าอินพุตเป็นไฟล์และนามสกุลเท่ากับส่วนขยายที่กำหนด | คุณลักษณะ:FileExtension::class วิธี: Validation::fileExtension(string $extension) |
062 | ชื่อ: file.mime การใช้งาน: file.mime:text/plain | ยืนยันว่าอินพุตเป็นไฟล์และประเภท MIME เป็นหนึ่งในประเภท MIME ที่กำหนด | คุณลักษณะ:FileMime::class วิธี: Validation::fileMime(string|array $mine) |
063 | ชื่อ: image การใช้งาน: image | ยืนยันว่าอินพุตเป็นไฟล์รูปภาพ (jpg, jpeg, PNG, gif, bmp, svg หรือ webp) | คุณลักษณะ:Image::class วิธี: Validation::image() |
064 | ชื่อ: image.width การใช้งาน: image.width:1920 | ยืนยันว่าอินพุตเป็นรูปภาพและความกว้างเท่ากับความกว้างที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageWidth::class วิธี: Validation::imageWidth(int $width) |
065 | ชื่อ: image.width.lte การใช้งาน: image.width.lte:1920 | ยืนยันว่าอินพุตเป็นรูปภาพและมีความกว้างน้อยกว่าหรือเท่ากับความกว้างที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageWidthLte::class วิธี: Validation::imageWidthLte(int $width) |
066 | ชื่อ: image.width.gte การใช้งาน: image.width.gte:1920 | ยืนยันว่าอินพุตเป็นรูปภาพและมีความกว้างมากกว่าหรือเท่ากับความกว้างที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageWidthGte::class วิธี: Validation::imageWidthGte(int $width) |
067 | ชื่อ: image.height การใช้งาน: image.height:1080 | ยืนยันว่าอินพุตเป็นรูปภาพและความสูงเท่ากับความสูงที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageHeight::class วิธี: Validation::imageHeight(int $height) |
068 | ชื่อ: image.height.lte การใช้งาน: image.height.lte:1080 | ยืนยันว่าอินพุตเป็นรูปภาพและมีความสูงน้อยกว่าหรือเท่ากับความสูงที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageHeightLte::class วิธี: Validation::imageHeightLte(int $height) |
069 | ชื่อ: image.height.gte การใช้งาน: image.height.gte:1080 | ยืนยันว่าอินพุตเป็นรูปภาพและมีความสูงมากกว่าหรือเท่ากับความสูงที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageHeightGte::class วิธี: Validation::imageHeightGte(int $height) |
070 | ชื่อ: image.dimensions การใช้งาน: image.dimensions:1920,1080,== | ยืนยันว่าอินพุตเป็นรูปภาพและมีขนาดน้อยกว่า เท่ากับ หรือมากกว่าความกว้างและความสูงที่กำหนดในหน่วยพิกเซล | คุณลักษณะ:ImageDimensions::class วิธี: Validation::imageDimensions(int $width, int $height, string $operator = '==') |
071 | ชื่อ: image.ratio การใช้งาน: image.ratio:16:9 | ยืนยันว่าอินพุตเป็นรูปภาพและอัตราส่วนกว้างยาวเท่ากับอัตราส่วนที่กำหนด (ต้องระบุอัตราส่วนเป็นเศษส่วน เช่น "16/9") | คุณลักษณะ:ImageRatio::class วิธี: Validation::imageRatio(string $ratio) |
072 | ชื่อ: if การใช้งาน: if:7,7,== | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง นอกจากนี้ ยังสามารถระบุตัวดำเนินการเงื่อนไขเป็นอาร์กิวเมนต์ที่สามได้ด้วย | คุณลักษณะ:IfConstraint::class วิธี: Validation::if(mixed $actual, mixed $expected = true, string $operator = '==') |
073 | ชื่อ: if.eq การใช้งาน: if.eq:3,3 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "==" | คุณลักษณะ:IfEq::class วิธี: Validation::ifEq(mixed $actual, mixed $expected) |
074 | ชื่อ: if.neq การใช้งาน: if.neq:1,2 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "!=" | คุณลักษณะ:IfNeq::class วิธี: Validation::ifNeq(mixed $actual, mixed $expected) |
075 | ชื่อ: if.id การใช้งาน: if.id:3,3 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "===" | คุณลักษณะ:IfId::class วิธี: Validation::ifId(mixed $actual, mixed $expected) |
076 | ชื่อ: if.nid การใช้งาน: if.nid:1,2 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "!==" | คุณลักษณะ:IfNid::class วิธี: Validation::ifNid(mixed $actual, mixed $expected) |
077 | ชื่อ: if.gt การใช้งาน: if.gt:2,1 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ ">" | คุณลักษณะ:IfGt::class วิธี: Validation::ifGt(mixed $actual, mixed $expected) |
078 | ชื่อ: if.gte การใช้งาน: if.gte:2,2 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ ">=" | คุณลักษณะ:IfGte::class วิธี: Validation::ifGte(mixed $actual, mixed $expected) |
079 | ชื่อ: if.lt การใช้งาน: if.lt:1,2 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "<" | คุณลักษณะ:IfLt::class วิธี: Validation::ifLt(mixed $actual, mixed $expected) |
080 | ชื่อ: if.lte การใช้งาน: if.lte:1,2 | ตรวจสอบเงื่อนไขระหว่างอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง ตัวดำเนินการเงื่อนไขคือ "<=" | คุณลักษณะ:IfLte::class วิธี: Validation::ifLte(mixed $actual, mixed $expected) |
081 | ชื่อ : empty การใช้งาน: empty | ยืนยันว่าอินพุตว่างเปล่าโดยใช้โครงสร้างภาษา Empty() (ว่างเปล่า เช่น สตริงว่าง อาร์เรย์ว่าง เท็จ null หรือ 0) | คุณลักษณะ:EmptyConstraint::class วิธี: Validation::empty() |
082 | ชื่อ: required การใช้งาน: required | ยืนยันว่าจำเป็นต้องป้อนข้อมูล (ไม่ว่างเปล่า กล่าวคือ ไม่ใช่สตริงว่างหรือค่าว่าง) | คุณลักษณะ:Required::class วิธี: Validation::required() |
083 | ชื่อ: allowed การใช้งาน: allowed | ยืนยันว่าอนุญาตให้ป้อนข้อมูลได้ (สามารถว่างเปล่าหรือมีค่าใดๆ ก็ได้ สตริงว่างและสตริงว่างถือเป็นค่าที่ถูกต้อง) | คุณลักษณะ:Allowed::class วิธี: Validation::allowed() |
084 | ชื่อ: forbidden การใช้งาน: forbidden | ยืนยันว่าอินพุตเป็นสิ่งต้องห้าม (เป็นโมฆะหรือไม่มีอยู่) | คุณลักษณะ:Forbidden::class วิธี: Validation::forbidden() |
085 | ชื่อ: accepted การใช้งาน: accepted | ยืนยันว่าอินพุตได้รับการยอมรับแล้ว (เท่ากับ: "on", "yes", "yeah", "yep", "yo", "ok", "okay", "aye", 1 หรือ "1", true หรือ " true") โปรดทราบว่าสตริงจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ | คุณลักษณะ:Accepted::class วิธี: Validation::accepted() |
086 | ชื่อ: declined การใช้งาน: declined | ยืนยันว่าอินพุตถูกปฏิเสธ (เท่ากับ: "off", "no", "not", "nope", "neh", "nay", 0 หรือ "0", false หรือ "false") โปรดทราบว่าสตริงจะได้รับการปฏิบัติ ในลักษณะที่ไม่คำนึงถึงขนาดตัวพิมพ์ | คุณลักษณะ:Declined::class วิธี: Validation::declined() |
087 | ชื่อ: bit การใช้งาน: bit | ยืนยันว่าอินพุตเป็นบิต (เท่ากับ: 1 หรือ "1", จริง; 0 หรือ "0", เท็จ) | คุณลักษณะ:Bit::class วิธี: Validation::bit() |
088 | ชื่อ: bit.isOn การใช้งาน: bit.isOn | ยืนยันว่าอินพุตเป็นบิตที่เปิดอยู่ (เท่ากับ: true, 1 หรือ "1") | คุณลักษณะ:BitIsOn::class วิธี: Validation::bitIsOn() |
089 | ชื่อ: bit.isOff การใช้งาน: bit.isOff | ยืนยันว่าอินพุตเป็นบิตที่ถูกปิด (เท่ากับ: false, 0 หรือ "0") | คุณลักษณะ:BitIsOff::class วิธี: Validation::bitIsOff() |
090 | ชื่อ: equals การใช้งาน: equals:value | ยืนยันว่าอินพุตเท่ากับค่าที่กำหนด ทำงานร่วมกับประเภทสเกลาร์และเป็นโมฆะ ตัวดำเนินการเปรียบเทียบคือ "==" | คุณลักษณะ:Equals::class วิธี: Validation::equals(string|int|float|bool|null $value) |
091 | ชื่อ: matches การใช้งาน: matches:'"/^[a-zA-Z0-9]+$/"' | ยืนยันว่าอินพุตตรงกับรูปแบบที่กำหนด ใช้งานได้กับสตริงเท่านั้น | คุณลักษณะ:Matches::class วิธี: Validation::matches(string $pattern) |
092 | ชื่อ: in การใช้งาน: in:val1,val2,... | ยืนยันว่าอินพุตอยู่ในค่าที่กำหนด ทำงานร่วมกับประเภทสเกลาร์และเป็นโมฆะ | คุณลักษณะ:In::class วิธี: Validation::in(string|int|float|bool|null ...$values) |
093 | ชื่อ: count การใช้งาน: count:3 | ยืนยันว่าจำนวนอินพุตเท่ากับค่าที่กำหนด ใช้งานได้กับข้อมูลทุกประเภท (null: 0; บูลีน: 0 หรือ 1; float/integer: ค่าตัวเลข; สตริง: จำนวนอักขระ; อาร์เรย์/นับได้: องค์ประกอบนับ; วัตถุ: จำนวนคุณสมบัติที่สามารถเข้าถึงได้) | คุณลักษณะ:Count::class วิธี: Validation::count(int $count) |
094 | ชื่อ: min การใช้งาน: min:3 | ยืนยันว่าจำนวนอินพุตมากกว่าหรือเท่ากับค่าที่กำหนด ใช้งานได้กับข้อมูลทุกประเภท (null: 0; บูลีน: 0 หรือ 1; float/integer: ค่าตัวเลข; สตริง: จำนวนอักขระ; อาร์เรย์/นับได้: องค์ประกอบนับ; วัตถุ: จำนวนคุณสมบัติที่สามารถเข้าถึงได้) | คุณลักษณะ:Min::class วิธี: Validation::min(int|float $count) |
095 | ชื่อ: max การใช้งาน: max:3 | ยืนยันว่าจำนวนอินพุตน้อยกว่าหรือเท่ากับค่าที่กำหนด ใช้งานได้กับข้อมูลทุกประเภท (null: 0; บูลีน: 0 หรือ 1; float/integer: ค่าตัวเลข; สตริง: จำนวนอักขระ; อาร์เรย์/นับได้: องค์ประกอบนับ; วัตถุ: จำนวนคุณสมบัติที่สามารถเข้าถึงได้) | คุณลักษณะ:Max::class วิธี: Validation::max(int|float $count) |
096 | ชื่อ: between การใช้งาน: between:3,7 | ยืนยันว่าจำนวนอินพุตอยู่ระหว่างค่าที่กำหนด ใช้งานได้กับข้อมูลทุกประเภท (null: 0; บูลีน: 0 หรือ 1; float/integer: ค่าตัวเลข; สตริง: จำนวนอักขระ; อาร์เรย์/นับได้: องค์ประกอบนับ; วัตถุ: จำนวนคุณสมบัติที่สามารถเข้าถึงได้) | คุณลักษณะ:Between::class วิธี: Validation::between(int|float $min, int|float $max) |
097 | ชื่อ: number.isPositive การใช้งาน: number.isPositive | ยืนยันว่าอินพุตเป็นจำนวนบวก | คุณลักษณะ:NumberIsPositive::class วิธี: Validation::numberIsPositive() |
098 | ชื่อ: number.isNegative การใช้งาน: number.isNegative | ยืนยันว่าอินพุตเป็นจำนวนลบ | คุณลักษณะ:NumberIsNegative::class วิธี: Validation::numberIsNegative() |
099 | ชื่อ: number.isEven การใช้งาน: number.isEven | ยืนยันว่าอินพุตเป็นเลขคู่ | คุณลักษณะ:NumberIsEven::class วิธี: Validation::numberIsEven() |
100 | ชื่อ: number.isOdd การใช้งาน: number.isOdd | ยืนยันว่าอินพุตเป็นเลขคี่ | คุณลักษณะ:NumberIsOdd::class วิธี: Validation::numberIsOdd() |
101 | ชื่อ: number.isMultipleOf การใช้งาน: number.isMultipleOf:3 | ยืนยันว่าอินพุตเป็นผลคูณของตัวเลขที่กำหนด | คุณลักษณะ:NumberIsMultipleOf::class วิธี: Validation::numberIsMultipleOf(float $number) |
102 | ชื่อ: number.isFinite การใช้งาน: number.isFinite | ยืนยันว่าอินพุตเป็นจำนวนจำกัด | คุณลักษณะ:NumberIsFinite::class วิธี: Validation::numberIsFinite() |
103 | ชื่อ: number.isInfinite การใช้งาน: number.isInfinite | ยืนยันว่าอินพุตเป็นจำนวนอนันต์ | คุณลักษณะ:NumberIsInfinite::class วิธี: Validation::numberIsInfinite() |
104 | ชื่อ: number.isNan การใช้งาน: number.isNan | ยืนยันว่าอินพุตไม่ใช่ตัวเลข | คุณลักษณะ:NumberIsNan::class วิธี: Validation::numberIsNan() |
105 | ชื่อ: string.charset การใช้งาน: string.charset:UTF-8 | ยืนยันว่าอินพุตถูกเข้ารหัสในชุดอักขระที่กำหนด (รวมนามแฝง) การตรวจสอบจะดำเนินการโดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ | คุณลักษณะ:StringCharset::class วิธี: Validation::stringCharset(string|array $charset) |
106 | ชื่อ: string.contains การใช้งาน: string.contains:substring | ยืนยันว่าอินพุตมีสตริงย่อยที่กำหนด อาร์กิวเมนต์บูลีนตัวที่สองสามารถระบุได้เพื่อเปิดใช้งานโหมดเข้มงวด (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | คุณลักษณะ:StringContains::class วิธี: Validation::stringContains(string $substring, bool $strict = false) |
107 | ชื่อ: string.startsWith การใช้งาน: string.startsWith:substring,1 | ยืนยันว่าอินพุตเริ่มต้นด้วยสตริงย่อยที่กำหนด อาร์กิวเมนต์บูลีนตัวที่สองสามารถระบุได้เพื่อเปิดใช้งานโหมดเข้มงวด (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | คุณลักษณะ:StringStartsWith::class วิธี: Validation::stringStartsWith(string $substring, bool $strict = false) |
108 | ชื่อ: string.endsWith การใช้งาน: string.endsWith:substring,0 | ยืนยันว่าอินพุตลงท้ายด้วยสตริงย่อยที่กำหนด อาร์กิวเมนต์บูลีนตัวที่สองสามารถระบุได้เพื่อเปิดใช้งานโหมดเข้มงวด (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | คุณลักษณะ:StringEndsWith::class วิธี: Validation::stringEndsWith(string $substring, bool $strict = false) |
109 | ชื่อ: string.length การใช้งาน: string.length:3 | ยืนยันว่าอินพุตเป็นสตริงที่มีความยาวที่กำหนดทุกประการ | คุณลักษณะ:StringLength::class วิธี: Validation::stringLength(int $length) |
110 | ชื่อ: string.wordsCount การใช้งาน: string.wordsCount:3 | ยืนยันว่าอินพุตเป็นสตริงที่มีการนับจำนวนคำที่กำหนดทุกประการ | คุณลักษณะ:StringWordsCount::class วิธี: Validation::stringWordsCount(int $count) |
111 | ชื่อ: array.hasKey การใช้งาน: array.hasKey:key | ยืนยันว่าอาร์เรย์อินพุตมีคีย์ที่กำหนด | คุณลักษณะ:ArrayHasKey::class วิธี: Validation::arrayHasKey(string|int $key) |
112 | ชื่อ: array.hasValue การใช้งาน: array.hasValue:value | ยืนยันว่าอาร์เรย์อินพุตมีค่าที่กำหนด ทำงานร่วมกับประเภทสเกลาร์ | คุณลักษณะ:ArrayHasValue::class วิธี: Validation::arrayHasValue(mixed $value) |
113 | ชื่อ: array.hasDistinct การใช้งาน: array.hasDistinct:key | ยืนยันว่าอินพุตเป็นอาร์เรย์หลายมิติที่มีค่าที่แตกต่างกันของคีย์ที่กำหนด | คุณลักษณะ:ArrayHasDistinct::class วิธี: Validation::arrayHasDistinct(string|int $key) |
114 | ชื่อ: array.isAssociative การใช้งาน: array.isAssociative | ยืนยันว่าอินพุตเป็นอาร์เรย์ที่เชื่อมโยง | คุณลักษณะ:ArrayIsAssociative::class วิธี: Validation::arrayIsAssociative() |
115 | ชื่อ: array.isSequential การใช้งาน: array.isSequential | ยืนยันว่าอินพุตเป็นอาร์เรย์ตามลำดับ | คุณลักษณะ:ArrayIsSequential::class วิธี: Validation::arrayIsSequential() |
116 | ชื่อ: array.isUnique การใช้งาน: array.isUnique | ยืนยันว่าอาร์เรย์อินพุตมีค่าที่ไม่ซ้ำกัน ใช้งานได้กับอาร์เรย์มิติเดียวเท่านั้น | คุณลักษณะ:ArrayIsUnique::class วิธี: Validation::arrayIsUnique() |
117 | ชื่อ: array.subset การใช้งาน: array.subset:'{"a":1,"b":2}' | ยืนยันว่าอินพุตเป็นอาร์เรย์ที่มีเซ็ตย่อยที่กำหนด โปรดทราบว่าการตรวจสอบนี้ใช้กับมิติแรกของอาร์เรย์เท่านั้น | คุณลักษณะ:ArraySubset::class วิธี: Validation::arraySubset(array $subset) |
118 | ชื่อ: object.hasProperty การใช้งาน: object.hasProperty:property | ยืนยันว่าอินพุตมีคุณสมบัติที่กำหนด | คุณลักษณะ:ObjectHasProperty::class วิธี: Validation::objectHasProperty(string $property) |
119 | ชื่อ: object.hasMethod การใช้งาน: object.hasMethod:method | ยืนยันว่าอินพุตมีวิธีการที่กำหนด | คุณลักษณะ:ObjectHasMethod::class วิธี: Validation::objectHasMethod(string $method) |
120 | ชื่อ: object.isStringable การใช้งาน: object.isStringable | ยืนยันว่าอินพุตใช้วิธี __toString() | คุณลักษณะ:ObjectIsStringable::class วิธี: Validation::objectIsStringable() |
121 | ชื่อ: object.isInstanceOf การใช้งาน: object.isInstanceOf:NamespaceClass | ยืนยันว่าอินพุตเป็นตัวอย่างของคลาสที่กำหนด | คุณลักษณะ:ObjectIsInstanceOf::class วิธี: Validation::objectIsInstanceOf(string $classFQN) |
122 | ชื่อ: object.isSubclassOf การใช้งาน: object.isSubclassOf:NamespaceClass | ยืนยันว่าอินพุตเป็นคลาสย่อยของคลาสที่กำหนด | คุณลักษณะ:ObjectIsSubclassOf::class วิธี: Validation::objectIsSubclassOf(string $classFQN) |
123 | ชื่อ: serialized การใช้งาน: serialized | ยืนยันว่าอินพุตเป็นข้อมูลอนุกรม PHP ที่ถูกต้อง | คุณลักษณะ:Serialized::class วิธี: Validation::serialized() |
124 | ชื่อ: json การใช้งาน: json | ยืนยันว่าอินพุตเป็น JSON ที่ถูกต้อง | คุณลักษณะ:Json::class วิธี: Validation::json() |
125 | ชื่อ: base64 การใช้งาน: base64 | ยืนยันว่าอินพุตเป็นสตริงที่เข้ารหัส Base64 ที่ถูกต้อง | คุณลักษณะ:Base64::class วิธี: Validation::base64() |
126 | ชื่อ: xml การใช้งาน: xml | ยืนยันว่าอินพุตเป็น XML ที่ถูกต้อง | คุณลักษณะ:Xml::class วิธี: Validation::xml() |
127 | ชื่อ: locale การใช้งาน: locale | ยืนยันว่าอินพุตเป็นตัวระบุสถานที่ที่ถูกต้อง (ค่าเริ่มต้น: [ISO 639-1] หรือ [ISO 639-1]_[ISO 3166-1 alpha-2] ไม่คำนึงถึงขนาดตัวพิมพ์ อินพุตจะถูกกำหนดรูปแบบมาตรฐานก่อนการตรวจสอบ (ขีดกลางถึงขีดล่าง ไม่มีจุดหรือชุดอักขระ) เข้มงวด: [ISO 639-1] หรือ [ISO 639-1]_[ISO 3166-1 alpha-2] คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยไม่มีการกำหนดรูปแบบมาตรฐาน | คุณลักษณะ:Locale::class วิธี: Validation::locale(bool $strict = false) |
128 | ชื่อ: language การใช้งาน: language | ยืนยันว่าอินพุตเป็นรหัสภาษาที่ถูกต้อง (ค่าเริ่มต้น: "ISO 639-1"; ยาว: "ISO 639-2/T") | คุณลักษณะ:Language::class วิธี: Validation::language(bool $long = false) |
129 | ชื่อ: country การใช้งาน: country | ยืนยันว่าอินพุตเป็นรหัสประเทศที่ถูกต้อง (ค่าเริ่มต้น: "ISO 3166-1 alpha-2"; ยาว: "ISO 3166-1 alpha-3") | คุณลักษณะ:Country::class วิธี: Validation::country(bool $long = false) |
130 | ชื่อ: timezone การใช้งาน: timezone | ยืนยันว่าอินพุตเป็นตัวระบุเขตเวลาที่ถูกต้อง (ค่าเริ่มต้น: ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่; เข้มงวด: คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | คุณลักษณะ:Timezone::class วิธี: Validation::timezone(bool $strict = false) |
131 | ชื่อ: datetime การใช้งาน: datetime | ยืนยันว่าอินพุตเป็นสตริง/วัตถุวันที่และเวลาที่ถูกต้อง | คุณลักษณะ:Datetime::class วิธี: Validation::datetime() |
132 | ชื่อ: datetime.eq การใช้งาน: datetime.eq:"2015-01-01" | ยืนยันว่าอินพุตเท่ากับสตริงวันที่และเวลาที่กำหนด | คุณลักษณะ:DatetimeEq::class วิธี: Validation::datetimeEq(string $datetime) |
133 | ชื่อ: datetime.lt การใช้งาน: datetime.lt:tomorrow :พรุ่งนี้ | ยืนยันว่าอินพุตเป็นสตริง/วัตถุวันที่และเวลาน้อยกว่า (ก่อน) สตริงวันที่และเวลาที่กำหนด | คุณลักษณะ:DatetimeLt::class วิธี: Validation::datetimeLt(string $datetime) |
134 | ชื่อ: datetime.lte การใช้งาน: datetime.lte:tomorrow | ยืนยันว่าอินพุตเป็นสตริง/วัตถุวันที่และเวลาน้อยกว่า (ก่อนหน้า) หรือเท่ากับสตริงวันที่และเวลาที่กำหนด | คุณลักษณะ:DatetimeLte::class วิธี: Validation::datetimeLte(string $datetime) |
135 | ชื่อ: datetime.gt การใช้งาน: datetime.gt:today | ยืนยันว่าอินพุตเป็นสตริง/อ็อบเจ็กต์ datetime ที่มากกว่า (หลัง) สตริง datetime ที่กำหนด | คุณลักษณะ:DatetimeGt::class วิธี: Validation::datetimeGt(string $datetime) |
136 | ชื่อ: datetime.gte การใช้งาน: datetime.gte:today | ยืนยันว่าอินพุตเป็นสตริง/อ็อบเจ็กต์ datetime ที่มากกว่า (หลัง) หรือเท่ากับสตริง datetime ที่กำหนด | คุณลักษณะ:DatetimeGte::class วิธี: Validation::datetimeGte(string $datetime) |
137 | ชื่อ: datetime.birthday การใช้งาน: datetime.birthday | ยืนยันว่าอินพุตเป็นสตริง/วัตถุวันที่และเวลาที่มีวันเกิดในวันนี้ อินพุตควรอยู่ในรูปแบบ "ปปปป-ดด-วว" | คุณลักษณะ:DatetimeBirthday::class วิธี: Validation::datetimeBirthday() |
138 | ชื่อ: datetime.format การใช้งาน: datetime.format:"Ymd H:i:s" | ยืนยันว่าอินพุตเป็นวันที่/เวลาที่ถูกต้องตามรูปแบบที่กำหนด | คุณลักษณะ:DatetimeFormat::class วิธี: Validation::datetimeFormat(string $format) |
139 | ชื่อ: datetime.format.global การใช้งาน: datetime.format.global | ยืนยันว่าอินพุตดูเหมือนสตริงวันที่และเวลาสากลที่ถูกต้องตามที่กำหนดไว้ในข้อกำหนด HTML5 | คุณลักษณะ:DatetimeFormatGlobal::class วิธี: Validation::datetimeFormatGlobal() |
140 | ชื่อ: datetime.format.local การใช้งาน: datetime.format.local | ยืนยันว่าอินพุตดูเหมือนสตริงวันที่และเวลาท้องถิ่นที่ถูกต้องตามที่กำหนดไว้ในข้อกำหนด HTML5 | คุณลักษณะ:DatetimeFormatLocal::class วิธี: Validation::datetimeFormatLocal() |
141 | ชื่อ: datestamp การใช้งาน: datestamp | ยืนยันว่าอินพุตดูเหมือนการประทับวันที่ของมนุษย์ รูปแบบ DMY หรือ MDY โดยคั่นด้วยจุด ขีดกลาง หรือเครื่องหมายทับ | คุณลักษณะ:Datestamp::class วิธี: Validation::datestamp() |
142 | ชื่อ: datestamp.ymd การใช้: datestamp.ymd | ยืนยันว่าอินพุตดูเหมือนการประทับวันที่ในรูปแบบ YMD ของมนุษย์ โดยคั่นด้วยจุด ขีดกลาง หรือเครื่องหมายทับ | คุณลักษณะ:DatestampYmd::class วิธี: Validation::datestampYmd() |
143 | ชื่อ: datestamp.dmy การใช้งาน: datestamp.dmy | ยืนยันว่าอินพุตดูเหมือนการประทับวันที่ในรูปแบบ DMY ของมนุษย์ โดยคั่นด้วยจุด ขีดกลาง หรือเครื่องหมายทับ | คุณลักษณะ:DatestampDmy::class วิธี: Validation::datestampDmy() |
144 | ชื่อ: datestamp.mdy การใช้งาน: datestamp.mdy | ยืนยันว่าอินพุตดูเหมือนการประทับวันที่ในรูปแบบ MDY ของมนุษย์ โดยคั่นด้วยจุด ขีดกลาง หรือเครื่องหมายทับ | คุณลักษณะ:DatestampMdy::class วิธี: Validation::datestampMdy() |
145 | ชื่อ: timestamp การใช้งาน: timestamp | ยืนยันว่าอินพุตดูเหมือนการประทับเวลาของมนุษย์ รูปแบบ 24 หรือ 12 ชั่วโมงมีหรือไม่มีวินาที | คุณลักษณะ:Timestamp::class วิธี: Validation::timestamp() |
146 | ชื่อ: timestamp.12 การใช้งาน: timestamp.12 | ยืนยันว่าอินพุตดูเหมือนการประทับเวลาของมนุษย์ รูปแบบ 12 ชั่วโมงมีหรือไม่มีวินาที และ AM/PM (ไม่บังคับ) | คุณลักษณะ:Timestamp12::class วิธี: Validation::timestamp12() |
147 | ชื่อ: timestamp.hms การใช้งาน: timestamp.hms | ยืนยันว่าอินพุตดูเหมือนการประทับเวลาของมนุษย์ รูปแบบ 24 หรือ 12 ชั่วโมงพร้อมหน่วยวินาที | คุณลักษณะ:TimestampHms::class วิธี: Validation::timestampHms() |
148 | ชื่อ: timestamp.hm การใช้งาน: timestamp.hm | ยืนยันว่าอินพุตดูเหมือนการประทับเวลาของมนุษย์ รูปแบบ 24 หรือ 12 ชั่วโมงโดยไม่มีวินาที | คุณลักษณะ:TimestampHm::class วิธี: Validation::timestampHm() |
149 | ชื่อ: timestamp.ms การใช้งาน: timestamp.ms | ยืนยันว่าอินพุตดูเหมือนการประทับเวลาของมนุษย์ ซึ่งมีเพียงนาทีและวินาทีเท่านั้น | คุณลักษณะ:TimestampMs::class วิธี: Validation::timestampMs() |
150 | ชื่อ: calender.day การใช้งาน: calender.day | ยืนยันว่าข้อมูลที่ป้อนดูเหมือนเป็นวันในปฏิทินหรือรูปแบบยาว ("จันทร์" หรือ "วันจันทร์") | คุณลักษณะ:CalenderDay::class วิธี: Validation::calenderDay() |
151 | ชื่อ: calender.month การใช้งาน: calender.month | ยืนยันว่าอินพุตดูเหมือนเดือนตามปฏิทินในรูปแบบช็อตหรือแบบยาว ("ม.ค." หรือ "มกราคม") | คุณลักษณะ:CalenderMonth::class วิธี: Validation::calenderMonth() |
152 | ชื่อ: username การใช้งาน: username | ยืนยันว่าอินพุตเป็นชื่อผู้ใช้ที่ถูกต้อง (ระหว่าง 4-32 อักขระ จะประกอบด้วยตัวอักษรไม่ว่าในกรณีใด อาจเป็นตัวเลขก็ได้ หรืออาจเลือกอักขระตัวใดตัวหนึ่งต่อไปนี้ "-_." (ไม่ต่อเนื่องกัน) และต้องขึ้นต้นด้วยตัวอักษรและลงท้ายเสมอ ด้วยตัวอักษรหรือตัวเลข) | คุณลักษณะ:Username::class วิธี: Validation::username() |
153 | ชื่อ: password การใช้งาน: password | ยืนยันว่าอินพุตเป็นรหัสผ่านที่ถูกต้อง (อักขระขั้นต่ำ 8 ตัว ประกอบด้วยตัวอักษรตัวเล็กอย่างน้อยหนึ่งตัวและตัวพิมพ์ใหญ่หนึ่งตัว ตัวเลขอย่างน้อยหนึ่งตัว อักขระพิเศษอย่างน้อยหนึ่งตัว และเว้นวรรคหรือไม่ก็ได้) | คุณลักษณะ:Password::class วิธี: Validation::password() |
154 | ชื่อ: uuid การใช้งาน: uuid | ยืนยันว่าอินพุตเป็น UUID ที่ถูกต้อง สามารถระบุเวอร์ชัน (v1/v2/v3/v4/v5) เพื่อจำกัดรูปแบบให้แคบลงได้ | คุณลักษณะ:Uuid::class วิธี: Validation::uuid(string|int|null $version = null) |
155 | ชื่อ: ascii การใช้งาน: ascii | ยืนยันว่าอินพุตเป็นสตริงที่มีเฉพาะอักขระ ASCII (สตริงที่สอดคล้องกับ ASCII) | คุณลักษณะ:Ascii::class วิธี: Validation::ascii() |
156 | ชื่อ: slug การใช้งาน: slug | ยืนยันว่าอินพุตเป็นกระสุนที่ถูกต้อง | คุณลักษณะ:Slug::class วิธี: Validation::slug() |
157 | ชื่อ: meta การใช้งาน: meta | ยืนยันว่าอินพุตเป็นสตริงที่มีเฉพาะอักขระเมตา (อักขระพิเศษ) (เช่น "@, #, $, ...") | คุณลักษณะ:Meta::class วิธี: Validation::meta() |
158 | ชื่อ: text การใช้งาน: text | ยืนยันว่าอินพุตเป็นสตริงที่มีตัวอักษรและเครื่องหมายวรรคตอนจากภาษาใดๆ | คุณลักษณะ:Text::class วิธี: Validation::text() |
159 | ชื่อ: words การใช้: words | ยืนยันว่าอินพุตเป็นสตริงที่มีเฉพาะคำและช่องว่างโดยไม่มีอักขระอื่น | คุณลักษณะ:Words::class วิธี: Validation::words() |
160 | ชื่อ: spaceless การใช้งาน: spaceless | ยืนยันว่าอินพุตเป็นสตริงที่ไม่มีอักขระช่องว่าง | คุณลักษณะ:Spaceless::class วิธี: Validation::spaceless() |
161 | ชื่อ: emoji การใช้งาน: emoji | ยืนยันว่าอินพุตมีอิโมจิ | คุณลักษณะ:Emoji::class วิธี: Validation::emoji() |
162 | ชื่อ: roman การใช้: roman | ยืนยันว่าอินพุตเป็นเลขโรมันที่ถูกต้อง | คุณลักษณะ:Roman::class วิธี: Validation::roman() |
163 | ชื่อ: phone การใช้งาน: phone | ยืนยันว่าอินพุตเป็นหมายเลขโทรศัพท์ที่ถูกต้อง (รองรับ: อเมริกาเหนือ ยุโรป และประเทศในเอเชียและตะวันออกกลางส่วนใหญ่) | คุณลักษณะ:Phone::class วิธี: Validation::phone() |
164 | ชื่อ: geolocation การใช้งาน: geolocation | ยืนยันว่าอินพุตเป็นตำแหน่งทางภูมิศาสตร์ที่ถูกต้อง (ชุดพิกัดละติจูดและลองจิจูด) | คุณลักษณะ:Geolocation::class วิธี: Validation::geolocation() |
165 | ชื่อ: version การใช้งาน: version | ยืนยันว่าอินพุตเป็นหมายเลขเวอร์ชันความหมายที่ถูกต้อง | คุณลักษณะ:Version::class วิธี: Validation::version() |
166 | ชื่อ: amount การใช้งาน: amount | ยืนยันว่าข้อมูลที่ป้อนประกอบด้วยตัวเลขเท่านั้น จุดทศนิยมที่เป็นทางเลือก (ลูกน้ำหรือจุด) และเครื่องหมายลบที่เป็นทางเลือก (ใช้สำหรับจำนวนเงิน เป็นต้น) | คุณลักษณะ:Amount::class วิธี: Validation::amount() |
167 | ชื่อ: amount.dollar การใช้งาน: amount.dollar | ยืนยันว่าอินพุตมีรูปแบบที่ถูกต้องเป็น USD โดยไม่จำเป็นต้องระบุจุดทศนิยมและตัวคั่นหลักพัน | คุณลักษณะ:AmountDollar::class วิธี: Validation::amountDollar() |
168 | ชื่อ: amount.euro การใช้งาน: amount.euro | ยืนยันว่าอินพุตมีรูปแบบที่ถูกต้องเป็น EUR โดยไม่จำเป็นต้องระบุจุดทศนิยมและตัวคั่นหลักพัน | คุณลักษณะ:AmountEuro::class วิธี: Validation::amountEuro() |
169 | ชื่อ: color การใช้งาน: color | ยืนยันว่าอินพุตเป็นสี CSS ที่ถูกต้อง (คำหลัก "หลวม", HEX, HEX-Alpha, RGB, RGBA, RGB "ไวยากรณ์ใหม่", HSL, HSLA, HSL "ไวยากรณ์ใหม่") | คุณลักษณะ:Color::class วิธี: Validation::color() |
170 | ชื่อ: color.hex การใช้งาน: color.hex | ยืนยันว่าอินพุตเป็นสี CSS HEX ที่ถูกต้อง | คุณลักษณะ:ColorHex::class วิธี: Validation::colorHex() |
171 | ชื่อ: color.hexShort การใช้งาน: color.hexShort | ยืนยันว่าอินพุตเป็นสี CSS 3-Char-HEX ที่ถูกต้อง | คุณลักษณะ:ColorHexShort::class วิธี: Validation::colorHexShort() |
172 | ชื่อ: color.hexLong การใช้งาน: color.hexLong | ยืนยันว่าอินพุตเป็นสี CSS 6-Char-HEX ที่ถูกต้อง | คุณลักษณะ:ColorHexLong::class วิธี: Validation::colorHexLong() |
173 | ชื่อ: color.hexAlpha การใช้งาน: color.hexAlpha | ยืนยันว่าอินพุตเป็นสี CSS HEX-Alpha (4 หรือ 8 ตัวอักษร) ที่ถูกต้อง | คุณลักษณะ:ColorHexAlpha::class วิธี: Validation::colorHexAlpha() |
174 | ชื่อ: color.rgb การใช้งาน: color.rgb | ยืนยันว่าอินพุตเป็นสี CSS RGB ที่ถูกต้อง | คุณลักษณะ:ColorRgb::class วิธี: Validation::colorRgb() |
175 | ชื่อ: color.rgba การใช้งาน: color.rgba | ยืนยันว่าอินพุตเป็นสี CSS RGBA ที่ถูกต้อง | คุณลักษณะ:ColorRgba::class วิธี: Validation::colorRgba() |
176 | ชื่อ: color.rgb.new การใช้งาน: color.rgb.new | ยืนยันว่าอินพุตเป็นสี CSS4 RGB ที่ถูกต้อง | คุณลักษณะ:ColorRgbNew::class วิธี: Validation::colorRgbNew() |
177 | ชื่อ: color.hsl การใช้งาน: color.hsl | ยืนยันว่าอินพุตเป็นสี CSS HSL ที่ถูกต้อง | คุณลักษณะ:ColorHsl::class วิธี: Validation::colorHsl() |
178 | ชื่อ: color.hsla การใช้งาน: color.hsla | ยืนยันว่าอินพุตเป็นสี CSS HSLA ที่ถูกต้อง | คุณลักษณะ:ColorHsla::class วิธี: Validation::colorHsla() |
179 | ชื่อ: color.hsl.new การใช้งาน: color.hsl.new | ยืนยันว่าอินพุตเป็นสี CSS4 HSL ที่ถูกต้อง | คุณลักษณะ:ColorHslNew::class วิธี: Validation::colorHslNew() |
180 | ชื่อ: color.keyword การใช้งาน: color.keyword | ยืนยันว่าอินพุตเป็นสีคำหลัก CSS ที่ถูกต้อง (เข้มงวดเช่นเดียวกับในข้อกำหนด CSS) | คุณลักษณะ:ColorKeyword::class วิธี: Validation::colorKeyword() |
181 | ชื่อ: ssn การใช้งาน: ssn | ยืนยันว่าอินพุตเป็น SSN ที่ถูกต้อง (หมายเลขประกันสังคมของสหรัฐอเมริกา) | คุณลักษณะ:Ssn::class วิธี: Validation::ssn() |
182 | ชื่อ: sin การใช้งาน: sin | ยืนยันว่าอินพุตเป็นบาปที่ถูกต้อง (หมายเลขประกันสังคมของ CA) | คุณลักษณะ:Sin::class วิธี: Validation::sin() |
183 | ชื่อ: nino การใช้งาน: nino | ยืนยันว่าข้อมูลดังกล่าวเป็น Nino ที่ถูกต้อง (หมายเลขประกันแห่งชาติของสหราชอาณาจักร) | คุณลักษณะ:Nino::class วิธี: Validation::nino() |
184 | ชื่อ: vin การใช้งาน: vin | ยืนยันว่าอินพุตเป็น VIN ที่ถูกต้อง (หมายเลขประจำตัวยานพาหนะ) | คุณลักษณะ:Vin::class วิธี: Validation::vin() |
185 | ชื่อ: issn การใช้งาน: issn | ยืนยันว่าอินพุตเป็น ISSN ที่ถูกต้อง (หมายเลขซีเรียลมาตรฐานระหว่างประเทศ) | คุณลักษณะ:Issn::class วิธี: Validation::issn() |
186 | ชื่อ: isin การใช้งาน: isin | ยืนยันว่าอินพุตเป็น ISIN ที่ถูกต้อง (หมายเลขประจำตัวหลักทรัพย์ระหว่างประเทศ) | คุณลักษณะ:Isin::class วิธี: Validation::isin() |
187 | ชื่อ: isbn การใช้งาน: isbn | ยืนยันว่าอินพุตเป็น ISBN ที่ถูกต้อง (หมายเลขหนังสือมาตรฐานระหว่างประเทศ) สามารถระบุประเภท (10/13) เพื่อ จำกัด รูปแบบให้แคบลง | คุณลักษณะ:Isbn::class วิธี: Validation::isbn(string|int|null $type = null) |
188 | ชื่อ: imei การใช้งาน: imei | ยืนยันว่าอินพุตเป็น IMEI ที่ถูกต้อง (หมายเลขประจำตัวอุปกรณ์ของสถานีเคลื่อนที่ระหว่างประเทศ) | คุณลักษณะ:Imei::class วิธี: Validation::imei() |
189 | ชื่อ: imei.sv การใช้งาน: imei.sv | ยืนยันว่าอินพุตเป็น IMEI-SV ที่ถูกต้อง (หมายเลขอุปกรณ์ของสถานีเคลื่อนที่ระหว่างประเทศและหมายเลขเวอร์ชันซอฟต์แวร์) | คุณลักษณะ:ImeiSv::class วิธี: Validation::imeiSv() |
190 | ชื่อ: meid การใช้งาน: meid | ยืนยันว่าอินพุตเป็น MEID ที่ถูกต้อง (ตัวระบุอุปกรณ์มือถือ) | คุณลักษณะ:Meid::class วิธี: Validation::meid() |
191 | ชื่อ: esn การใช้งาน: esn | ยืนยันว่าอินพุตเป็น ESN ที่ถูกต้อง (หมายเลขซีเรียลอิเล็กทรอนิกส์) | คุณลักษณะ:Esn::class วิธี: Validation::esn() |
192 | ชื่อ: currency การใช้งาน: currency | ยืนยันว่าอินพุตเป็นรหัสสกุลเงินที่ถูกต้อง (ค่าเริ่มต้น: "ISO 4217 Alpha"; ตัวเลข: "ISO 4217 Numeric") | คุณลักษณะ:Currency::class วิธี: Validation::currency(bool $numeric = false) |
193 | ชื่อ: currency.name การใช้งาน: currency.name | ยืนยันว่าอินพุตเป็นชื่อสกุลเงินที่ถูกต้อง (เช่นใน ISO 4217) | คุณลักษณะ:CurrencyName::class วิธี: Validation::currencyName() |
194 | ชื่อ: creditcard การใช้งาน: creditcard | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิตที่ถูกต้องอนุญาตให้มีพื้นที่ว่างและ/หรือขีดกลางได้รับอนุญาต | คุณลักษณะ:Creditcard::class วิธี: Validation::creditcard() |
195 | ชื่อ: creditcard.visa การใช้งาน: creditcard.visa | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิตวีซ่าที่ถูกต้องอนุญาตให้ใช้พื้นที่ที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardVisa::class วิธี: Validation::creditcardVisa() |
196 | ชื่อ: creditcard.mastercard การใช้งาน: creditcard.mastercard | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต MasterCard ที่ถูกต้องอนุญาตให้ใช้ช่องว่างที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardMastercard::class วิธี: Validation::creditcardMastercard() |
197 | ชื่อ: creditcard.discover การใช้งาน: creditcard.discover | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิตที่ถูกต้องค้นพบพื้นที่ที่สมดุลและ/หรือขีดกลางได้รับอนุญาต | คุณลักษณะ:CreditcardDiscover::class วิธี: Validation::creditcardDiscover() |
198 | ชื่อ: creditcard.americanExpress การใช้งาน: creditcard.americanExpress | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต American Express ที่ถูกต้องอนุญาตให้ใช้พื้นที่ที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardAmericanExpress::class วิธี: Validation::creditcardAmericanExpress() |
199 | ชื่อ: creditcard.dinersClub การใช้งาน: creditcard.dinersClub | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิตคลับ Diners Club ที่ถูกต้องอนุญาตให้มีพื้นที่ว่างและ/หรือขีดกลางได้รับอนุญาต | คุณลักษณะ:CreditcardDinersClub::class วิธี: Validation::creditcardDinersClub() |
200 | ชื่อ: creditcard.jcb การใช้งาน: creditcard.jcb | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต JCB ที่ถูกต้องอนุญาตให้ใช้ช่องว่างที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardJcb::class วิธี: Validation::creditcardJcb() |
201 | ชื่อ: creditcard.maestro การใช้งาน: creditcard.maestro | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต Maestro ที่ถูกต้องอนุญาตให้ใช้พื้นที่ที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardMaestro::class วิธี: Validation::creditcardMaestro() |
202 | ชื่อ: creditcard.chinaUnionPay การใช้งาน: creditcard.chinaUnionPay | ยืนยันว่าการป้อนข้อมูลเป็นหมายเลขบัตรเครดิตของ China Unionpay ที่ถูกต้องพื้นที่ที่สมดุลและ/หรือขีดกลางได้รับอนุญาต | คุณลักษณะ:CreditcardChinaUnionPay::class วิธี: Validation::creditcardChinaUnionPay() |
203 | ชื่อ: creditcard.instaPayment การใช้งาน: creditcard.instaPayment | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต Instapayment ที่ถูกต้องอนุญาตให้ใช้ช่องว่างที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardInstaPayment::class วิธี: Validation::creditcardInstaPayment() |
204 | ชื่อ: creditcard.laser การใช้งาน: creditcard.laser | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิตเลเซอร์ที่ถูกต้องอนุญาตให้ใช้พื้นที่ที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardLaser::class วิธี: Validation::creditcardLaser() |
205 | ชื่อ: creditcard.uatp การใช้งาน: creditcard.uatp | ยืนยันว่าอินพุตเป็นหมายเลขบัตรเครดิต UATP ที่ถูกต้องอนุญาตให้ใช้ช่องว่างที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardUatp::class วิธี: Validation::creditcardUatp() |
206 | ชื่อ: creditcard.mir การใช้งาน: creditcard.mir | ยืนยันว่าอินพุตเป็นหมายเลขบัตรการชำระเงิน MIR ที่ถูกต้องอนุญาตให้ใช้พื้นที่ที่สมดุลและ/หรือขีดกลาง | คุณลักษณะ:CreditcardMir::class วิธี: Validation::creditcardMir() |
207 | ชื่อ: cvv การใช้งาน: cvv | ยืนยันว่าอินพุตเป็น CVV ที่ถูกต้อง (รหัสความปลอดภัยของการ์ด) | คุณลักษณะ:Cvv::class วิธี: Validation::cvv() |
208 | ชื่อ: bic การใช้งาน: bic | ยืนยันว่าอินพุตเป็น BIC ที่ถูกต้อง (รหัสระบุธนาคาร) | คุณลักษณะ:Bic::class วิธี: Validation::bic() |
209 | ชื่อ: iban การใช้งาน: iban:IQ | ยืนยันว่าข้อมูลดังกล่าวเป็น Iban ที่ถูกต้อง (หมายเลขบัญชีธนาคารระหว่างประเทศ) รหัสประเทศ "ISO 3166-1 Alpha-2" สามารถระบุได้เพื่อ จำกัด รูปแบบ | คุณลักษณะ:Iban::class วิธี: Validation::iban(?string $country = null) |
210 | ชื่อ: luhn การใช้งาน: luhn | ยืนยันว่าอินพุตผ่านการตรวจสอบอัลกอริทึม Luhn กฎนี้ส่วนใหญ่จะใช้ร่วมกับกฎอื่น ๆ เช่นหมายเลขบัตรเครดิตและตัวระบุเพื่อตรวจสอบความถูกต้องของเรื่องต่อไป | คุณลักษณะ:Luhn::class วิธี: Validation::luhn() |
211 | ชื่อ: php.keyword การใช้งาน: php.keyword | ยืนยันว่าอินพุตเป็นคำหลักภาษา PHP | คุณลักษณะ:PhpKeyword::class วิธี: Validation::phpKeyword() |
212 | ชื่อ: php.reserved การใช้งาน: php.reserved | ยืนยันว่าอินพุตเป็นคำที่สงวนไว้ภาษา PHP | คุณลักษณะ:PhpReserved::class วิธี: Validation::phpReserved() |
213 | ชื่อ: php.reserved.extra การใช้งาน: php.reserved.extra | ยืนยันว่าอินพุตเป็นคำที่สงวนไว้ภาษา PHP รวมถึงคำที่สงวนไว้อย่างนุ่มนวล | คุณลักษณะ:PhpReservedExtra::class วิธี: Validation::phpReservedExtra() |
214 | ชื่อ: regex การใช้งาน: regex | ยืนยันว่าอินพุตเป็นนิพจน์ปกติที่ถูกต้อง | คุณลักษณะ:Regex::class วิธี: Validation::regex() |
215 | ชื่อ: bool การใช้งาน: ดู boolean | นามแฝงอ้างถึง boolean สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:BoolConstraint::class วิธี: Validation::bool() |
216 | ชื่อ: int การใช้งาน: ดู integer | นามแฝงอ้างถึง integer สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:IntConstraint::class วิธี: Validation::int() |
217 | ชื่อ: long การใช้งาน: ดู integer | นามแฝงอ้างถึง integer สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Long::class วิธี: Validation::long() |
218 | ชื่อ: double การใช้งาน: ดู float | นามแฝงอ้างถึง float สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Double::class วิธี: Validation::double() |
219 | ชื่อ: real การใช้งาน: ดู float | นามแฝงอ้างถึง float สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Real::class วิธี: Validation::real() |
220 | ชื่อ: str การใช้งาน: ดู string | นามแฝงอ้างถึง string สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:Str::class วิธี: Validation::str() |
221 | ชื่อ: arr การใช้งาน: ดู array | นามแฝงอ้างถึง array สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Arr::class วิธี: Validation::arr() |
222 | ชื่อ: obj การใช้งาน: ดู object | นามแฝงอ้างถึง object สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Obj::class วิธี: Validation::obj() |
223 | ชื่อ: stream การใช้งาน: ดู resource | นามแฝงอ้างถึง resource สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Stream::class วิธี: Validation::stream() |
224 | ชื่อ: assert การใช้งาน: ดู if | นามแฝงอ้าง if สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Assert::class วิธี: Validation::assert(mixed $actual, mixed $expected = true, string $operator = '==') |
225 | ชื่อ: assert.equals การใช้งาน: ดูว่า if.eq | นามแฝงอ้างถึง if.eq สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertEquals::class วิธี: Validation::assertEquals(mixed $actual, mixed $expected) |
226 | ชื่อ: assert.notEquals การใช้งาน: ดูว่า if.neq | นามแฝงอ้างถึง if.neq สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertNotEquals::class วิธี: Validation::assertNotEquals(mixed $actual, mixed $expected) |
227 | ชื่อ: assert.greaterThan การใช้งาน: ดูว่า if.gt | นามแฝงอ้างถึง if.gt สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertGreaterThan::class วิธี: Validation::assertGreaterThan(mixed $actual, mixed $expected) |
228 | ชื่อ: assert.greaterThanOrEquals การใช้งาน: ดูว่า if.gte | นามแฝงอ้างถึง if.gte สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertGreaterThanOrEquals::class วิธี: Validation::assertGreaterThanOrEquals(mixed $actual, mixed $expected) |
229 | ชื่อ: assert.lessThan การใช้งาน: ดูว่า if.lt | นามแฝงอ้างถึง if.lt สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertLessThan::class วิธี: Validation::assertLessThan(mixed $actual, mixed $expected) |
230 | ชื่อ: assert.lessThanOrEquals การใช้งาน: ดูว่า if.lte | นามแฝงอ้างถึง if.lte สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:AssertLessThanOrEquals::class วิธี: Validation::assertLessThanOrEquals(mixed $actual, mixed $expected) |
231 | ชื่อ: blank การใช้งาน: ดู empty | นามแฝงอ้างถึง empty สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Blank::class วิธี: Validation::blank() |
232 | ชื่อ: is การใช้งาน: ดู equals | นามแฝงอ้างถึง equals คำอธิบายทั้งหมด | คุณลักษณะ:Is::class วิธี: Validation::is(mixed $value) |
233 | ชื่อ: same การใช้งาน: ดู equals | นามแฝงอ้างถึง equals คำอธิบายทั้งหมด | คุณลักษณะ:Same::class วิธี: Validation::same(mixed $value) |
234 | ชื่อ: pattern การใช้งาน: ดู matches | นามแฝงอ้างถึง matches สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Pattern::class วิธี: Validation::pattern(string $pattern) |
235 | ชื่อ: choice การใช้งาน: ดู in | นามแฝง in ถึงคำอธิบายทั้งหมด | คุณลักษณะ:Choice::class วิธี: Validation::choice(string|int|float|bool|null ...$values) |
236 | ชื่อ: size การใช้งาน: ดู count | นามแฝงอ้างถึง count สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Size::class วิธี: Validation::size(int $size) |
237 | ชื่อ: length การใช้งาน: ดู count | นามแฝงอ้างถึง count สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Length::class วิธี: Validation::length(int $count) |
238 | ชื่อ: range การใช้งาน: ดู between | นามแฝงอ้างถึง between คำอธิบายทั้งหมด | คุณลักษณะ:Range::class วิธี: Validation::range(int|float $min, int|float $max) |
239 | ชื่อ: minmax การใช้งาน: ดู between | นามแฝงอ้างถึง between คำอธิบายทั้งหมด | คุณลักษณะ:Minmax::class วิธี: Validation::minmax(int|float $min, int|float $max) |
240 | ชื่อ: filled การใช้งาน: ดู required | นามแฝงอ้างถึงคำอธิบายทั้งหมด required | คุณลักษณะ:Filled::class วิธี: Validation::filled() |
241 | ชื่อ: present การใช้งาน: ดู required | นามแฝงอ้างถึงคำอธิบายทั้งหมด required | คุณลักษณะ:Present::class วิธี: Validation::present() |
242 | ชื่อ: optional การใช้งาน: ดู allowed | นามแฝง allowed ถึงคำอธิบายทั้งหมด | คุณลักษณะ:Optional::class วิธี: Validation::optional() |
243 | ชื่อ: date การใช้งาน: ดู datetime | นามแฝงอ้างถึง datetime สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Date::class วิธี: Validation::date() |
244 | ชื่อ: date.equals การใช้งาน: ดู datetime.eq | นามแฝงอ้างถึง datetime.eq สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateEquals::class วิธี: Validation::dateEquals(string $datetime) |
245 | ชื่อ: date.before การใช้งาน: ดู datetime.lt | นามแฝงอ้างถึง datetime.lt สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateBefore::class วิธี: Validation::dateBefore(string $datetime) |
246 | ชื่อ: date.beforeOrEquals การใช้งาน: ดู datetime.lte | นามแฝงอ้างถึง datetime.lte สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateBeforeOrEquals::class วิธี: Validation::dateBeforeOrEquals(string $datetime) |
247 | ชื่อ: date.after การใช้งาน: ดู datetime.gt | นามแฝงอ้างถึง datetime.gt สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateAfter::class วิธี: Validation::dateAfter(string $datetime) |
248 | ชื่อ: date.afterOrEquals การใช้งาน: ดู datetime.gte | นามแฝงอ้างถึง datetime.gte สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateAfterOrEquals::class วิธี: Validation::dateAfterOrEquals(string $datetime) |
249 | ชื่อ: date.format การใช้งาน: ดู datetime.format | นามแฝงอ้างถึง datetime.format สำหรับคำอธิบายแบบเต็ม | คุณลักษณะ:DateFormat::class วิธี: Validation::dateFormat(string $format) |
250 | ชื่อ: cakeday การใช้งาน: ดู datetime.birthday | นามแฝงอ้างถึง datetime.birthday สำหรับคำอธิบายทั้งหมด | คุณลักษณะ:Cakeday::class วิธี: Validation::cakeday() |
มาโคร | การตรวจสอบความถูกต้อง |
---|---|
[nullable] | null^~empty |
[alnumDash] | matches:"/[a-zA-Z0-9-_]+/" |
[twitterHandle] | matches:'"/^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,14}$/"' |
[gmail] | email&string.contains:"@gmail." |
[eduMail] | email&string.endsWith:".edu" |
ตอนนี้มันอาจดูเหมือนว่า mighty กำลังทำมากเกินไปและความกังวลด้านประสิทธิภาพเริ่มเกิดขึ้น ไม่จำเป็นต้องกังวลเรื่องนั้น mighty นั้นเร็วมากและได้รับการปรับให้เหมาะสมเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด นี่คือมาตรฐานบางส่วนของประสิทธิภาพของผู้ตรวจสอบ:
ประสิทธิภาพของตัวตรวจสอบ mighty และการตรวจสอบความถูกต้องของ Laravel ในแอปพลิเคชัน Laravel การทดสอบดำเนินการโดยใช้อาร์เรย์ของ 50000 องค์ประกอบครึ่งหนึ่งเป็นจำนวนเต็มและอีกครึ่งหนึ่งเป็นสตริงตัวเลข ผู้ตรวจสอบแต่ละคนได้รับการทดสอบ 10 ครั้ง (ติดต่อกัน) และผลเฉลี่ยของ 10 เหล่านี้ถูกรวบรวม:
$ data = array_merge ( range ( 1 , 25000 ), array_map ( ' strval ' , range ( ' 25001 ' , ' 50000 ' )));
// mighty Validator with XDebug disabled
[ // required&integer
' preparationTime ' => ' 1.32ms ' , // the time required to build the array
' validationTime ' => ' 1107.29ms ' , // the time required to validate the array
' totalTime ' => ' 1108.61ms ' , // the time required for the whole process
]
// mighty Validator with XDebug enabled
[ // required&integer
' preparationTime ' => ' 9.09ms ' ,
' validationTime ' => ' 6085.04ms ' ,
' totalTime ' => ' 6094.13ms ' ,
]
// Laravel Validator with XDebug disabled
[ // required|integer
' preparationTime ' => ' 1.33ms ' ,
' validationTime ' => ' 13882.72ms ' ,
' totalTime ' => ' 13884.05ms ' ,
]
// Laravel Validator with XDebug enabled
[ // required|integer
' preparationTime ' => ' 9.33ms ' ,
' validationTime ' => ' 24010.60ms ' ,
' totalTime ' => ' 24019.93ms ' ,
]
ดังนั้น mighty นั้นเร็วกว่าการตรวจสอบตัวตรวจสอบ Laravel ประมาณ 12.5 เท่าโดยมีการปิดใช้งาน Xdebug และเร็วกว่า 4x เท่าเมื่อเปิดใช้งาน XDebug
เกณฑ์มาตรฐานทำได้โดยใช้ phpbench นี่คือภาพรวมอย่างรวดเร็ว:
PHPBench (1.2.6) running benchmarks...
with configuration file: mighty /phpbench.json.dist
with PHP version 8.1.9, xdebug , opcache
MAKS mighty BenchmarksConstraintBench
benchAValidValidatableObject............I4 ✔ Mo305.595074ops/s (±0.75%)
benchAnInvalidValidatableObject.........I4 ✔ Mo326.708522ops/s (±1.02%)
MAKS mighty BenchmarksValidatorBench
benchSingleValidationString.............I4 ✔ Mo0.02212ms (±1.59%)
benchSingleValidationObject.............I4 ✔ Mo0.126929ms (±1.63%)
benchBulkValidationObject...............I4 ✔ Mo9.345847ms (±0.62%)
benchBulkValidationString...............I4 ✔ Mo6.734188ms (±0.40%)
Subjects: 6, Assertions: 6, Failures: 0, Errors: 0
ความจริง: ผลลัพธ์เกณฑ์มาตรฐานล่าสุดสามารถพบได้ในไปป์ไลน์ CI ซึ่งจะได้รับการปรับปรุงด้วยการกด/PR แต่ละครั้งไปยัง Upsteam
MAKS mighty Rule::setMessageTranslator()
สามารถใช้เมธอดได้ วิธีนี้เป็นวิธีที่สะดวกในการตั้งค่านักแปลข้อความทั่วโลกใช้เวลาปิดที่ได้รับข้อความดิบ (พร้อมตัวยึดตำแหน่ง) เป็นอาร์กิวเมนต์และต้องส่งคืนเวอร์ชันที่แปลของข้อความนั้น mighty เป็นโครงการโอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT
ลิขสิทธิ์ (c) 2022 Marwan al-Soltany สงวนลิขสิทธิ์.