ไลบรารีการตรวจสอบล่าสุดที่คุณต้องการ!
การติดตั้ง
เกี่ยวกับ 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::classConstraint::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 สงวนลิขสิทธิ์.