parameter عبارة عن مكتبة حول وسيطة parameter والتي توفر وظائف إضافية مع قواعد التحقق من الصحة واستبطان المخطط.
parameter متاحة من خلال Packagist ومصدر المستودع موجود في chevere/ parameter .
composer require chevere/ parameter
تمكن parameter من إنتاج parameter ديناميكية من أي نوع بقواعد إضافية.
على سبيل المثال، عدد صحيح بقيمة الحد الأدنى 10.
use function Chevere parameter int ;
$ int = int (min: 10 );
$ int ( $ var ); // exception if $var < 10
في parameter الوظيفة أو الطريقة، يمكنك استخدام السمات لتحديد قواعد التحقق من صحة parameter وقيمة الإرجاع.
use Chevere parameter Attributes FloatAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
use function Chevere parameter validated ;
#[ReturnAttr(
new FloatAttr (min: 0 , max: 2400 )
)]
function wageWeekWA (
#[IntAttr(min: 1628 )]
int $ cents ,
#[FloatAttr(min: 0 , max: 40 )]
float $ hours
) {
return $ cents * $ hours / 100 ;
}
validated ( ' wageWeekWA ' , $ cents , $ hours );
يمكن تشغيل التحقق من الصحة باستخدام validated
(المثال أعلاه) و/أو المضمّن و/أو المفوض إلى برنامج تضمين المتصل. توفر parameter مساعدين للوصول إلى القواعد لكل من parameter وقيمة الإرجاع لتسهيل عملية توصيل الأسلاك.
توفر القواعد المحددة بواسطة كل parameter مخططًا يمكن قراءته بواسطة الإنسان والذي يسمح بكشف معايير التحقق من الصحة.
توفر parameter واجهة برمجة التطبيقات التي يمكن استخدامها لإنشاء parameter باستخدام الوظائف و/أو السمات. يمكن استخدام كائنات parameter مباشرة في المنطق بينما تتطلب السمات خطوة قراءة.
استخدم التحقق المضمن للانتقال من هذا:
if ( $ var > 10 || $ var < 1 ) {
throw new InvalidArgumentException ();
}
إلى هذا:
use function Chevere parameter int ;
int (min: 1 , max: 10 )( $ var );
استخدم السمات لتحديد قواعد parameter وقيمة الإرجاع.
استخدم التحقق من صحة السمة المفوضة مع وظيفة validated()
للانتقال من هذا:
function myFunction ( int $ var ): string
{
if ( $ var > 10 || $ var < 1 ) {
throw new InvalidArgumentException ();
}
$ return = ' done ok ' ;
return preg_match ( ' /ok$/ ' , $ return )
? $ return
: throw new InvalidArgumentException ();
}
$ result = myFunction ( $ var );
إلى هذا:
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use Chevere parameter Attributes StringAttr ;
use function Chevere parameter validated ;
#[ReturnAttr(
new StringAttr ( ' /ok$/ ' )
)]
function myFunction (
#[IntAttr(min: 1 , max: 10 )]
int $ var
): string
{
return ' done ok ' ;
}
$ result = validated ( ' myFunction ' , $ var );
استخدم reflectionTo parameter s
ووظائف reflectionToReturn
للتحقق اليدوي من الوسائط وقيمة الإرجاع:
use ReflectionFunction ;
use function Chevere parameter reflectionTo parameter s ;
use function Chevere parameter reflectionToReturn ;
$ reflection = new ReflectionFunction ( ' myFunction ' );
$ parameter s = reflectionTo parameter s ( $ reflection );
$ return = reflectionToReturn ( $ reflection );
$ parameter s (... $ args ); // valid $args
$ result = myFunction (... $ args ); // myFunction call
$ return ( $ result ); // valid $result
استخدم التحقق من صحة السمة المضمنة للتحقق اليدوي داخل نص الوظيفة:
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use Chevere parameter Attributes StringAttr ;
use function Chevere parameter valid ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new StringAttr ( ' /ok$/ ' )
)]
function myFunction (
#[IntAttr(min: 1 , max: 10 )]
int $ var
): string
{
valid (); // valid $var
$ return = ' ok ' ;
return returnAttr ()( $ return ); // valid $return
}
السمات في PHP تدعم فقط التعبيرات التي يمكنك استخدامها في ثوابت الفئة. ليس من الممكن تحديد parameter الديناميكية مباشرة باستخدام السمات.
لتجنب هذا القيد، يمكنك استخدام سمة CallableAttr
التي تمكن من إعادة توجيه دقة parameter إلى كائن قابل للاستدعاء لإرجاع مثيل parameter Interface
.
use Chevere parameter Interfaces parameter Interface ;
use Chevere parameter Attributes CallableAttr ;
function myCallable (): parameter Interface
{
return arrayp (
email: string (),
)-> withOptional (
name: string (),
);
}
#[CallableAttr( ' myCallable ' )]
parameter هي كائن ينفذ parameter Interface
. يمكن لكل parameter تحديد description
وقيمة default
، بالإضافة إلى قواعد التحقق الإضافية اعتمادًا على النوع.
يمكن تعريف parameter باستخدام الوظائف و/أو السمات، فهي تأخذ نفس الوسيطات لكليهما.
عند استدعاء parameter $param('value')
سيؤدي ذلك إلى التحقق من صحة الوسيطة التي تم تمريرها.
استخدم string
الدالة لإنشاء String parameter
. تمرير regex
لمطابقة السلسلة.
use function Chevere parameter string ;
// Any string
$ string = string ();
// String matching bin-<digits>
$ string = string ( ' /^bin-[d]+$/ ' );
$ string ( ' bin-123 ' );
استخدم سمة StringAttr
لتحديد parameter سلسلة.
use Chevere parameter Attributes StringAttr ;
#[StringAttr( ' /^bin-[d]+$/ ' )]
تعتمد parameter التالية على السلسلة.
استخدم وظيفة enum
لإنشاء String parameter
مطابقة لقائمة السلاسل.
use function Chevere parameter enum ;
$ enum = enum ( ' on ' , ' off ' );
$ enum ( ' on ' );
$ enum ( ' off ' );
استخدم سمة EnumAttr
لتحديد parameter سلسلة التعداد.
use Chevere parameter Attributes EnumAttr ;
#[EnumAttr( ' on ' , ' off ' )]
استخدم الدالة intString
لإنشاء String parameter
تطابق الأعداد الصحيحة للسلسلة.
use function Chevere parameter intString ;
$ int = intString ();
$ int ( ' 100 ' );
استخدم الدالة boolString
لإنشاء String parameter
مطابقة للسلاسل 0
و 1
.
use function Chevere parameter boolString ;
$ bool = boolString ();
$ bool ( ' 0 ' );
$ bool ( ' 1 ' );
استخدم date
الوظيفة لإنشاء String parameter
تطابق سلاسل YYYY-MM-DD
.
use function Chevere parameter date ;
$ date = date ();
$ date ( ' 2021-01-01 ' );
استخدم time
الوظيفة لإنشاء String parameter
تطابق سلاسل hh:mm:ss
.
use function Chevere parameter time ;
$ time = time ();
$ time ( ' 12:00:00 ' );
استخدم datetime
الوظيفة لإنشاء String parameter
تطابق سلاسل YYYY-MM-DD hh:mm:ss
.
use function Chevere parameter datetime ;
$ datetime = datetime ();
$ datetime ( ' 2024-01-09 10:53:00 ' );
استخدم الدالة int
لإنشاء Int parameter
. قم بتمرير قيم min
والحد max
لنطاق الأعداد الصحيحة، accept
قائمة الأعداد الصحيحة المقبولة reject
قائمة الأعداد الصحيحة المرفوضة.
use function Chevere parameter int ;
// Any int
$ int = int ();
$ int ( 1 );
// Integer between 0 and 100
$ int = int (min: 0 , max: 100 );
$ int ( 50 );
// Integer matching 1, 2 or 3
$ int = int (accept: [ 1 , 2 , 3 ]);
$ int ( 2 );
// Integer not-matching 1, 2 or 3
$ int = int (reject: [ 1 , 2 , 3 ]);
$ int ( 4 );
استخدم سمة IntAttr
لتعريف parameter عدد صحيح.
use Chevere parameter Attributes IntAttr ;
#[IntAttr(min: 0 , max: 100 )]
تعتمد parameter التالية على Int.
استخدم الدالة boolInt
لإنشاء Int parameter
التي تطابق الأعداد الصحيحة 0
و 1
.
use function Chevere parameter boolInt ;
$ bool = boolInt ();
$ bool ( 0 );
$ bool ( 1 );
استخدم الدالة float
لإنشاء Float parameter
. قم بتمرير قيم min
والحد max
لنطاق التعويم، accept
قائمة العوامات المقبولة reject
قائمة العوامات المرفوضة.
use function Chevere parameter float ;
// Any float
$ float = float ();
$ float ( 1.5 );
// Float between 0 and 100
$ float = float (min: 0 , max: 100 );
$ float ( 50.5 );
// Float matching 1.5, 2.5 or 3.5
$ float = float (accept: [ 1.5 , 2.5 , 3.5 ]);
$ float ( 2.5 );
// Float not-matching 1.5, 2.5 or 3.5
$ float = float (reject: [ 1.5 , 2.5 , 3.5 ]);
$ float ( 4.5 );
استخدم سمة FloatAttr
لتحديد parameter عائمة.
use Chevere parameter Attributes FloatAttr ;
#[FloatAttr(min: 0 , max: 100 )]
استخدم الدالة bool
لإنشاء Bool parameter
.
use function Chevere parameter bool ;
$ bool = bool ();
$ bool ( true );
$ bool ( false );
استخدم سمة BoolAttr
لتحديد parameter منطقية.
use Chevere parameter Attributes BoolAttr ;
#[BoolAttr]
استخدم الدالة null
لإنشاء Null parameter
.
use function Chevere parameter null ;
$ null = null ();
$ null ( null );
استخدم سمة NullAttr
لتحديد parameter فارغة.
use Chevere parameter Attributes NullAttr ;
#[NullAttr]
استخدم object
الوظيفة لإنشاء Object parameter
. قم بتمرير className لاسم فئة الكائن.
use function Chevere parameter object ;
$ object = object (stdClass::class);
$ object ( new stdClass ());
استخدم سمة ObjectAttr
لتعريف parameter الكائن.
use Chevere parameter Attributes ObjectAttr ;
#[ObjectAttr(stdClass::class)]
استخدم الدالة mixed
لإنشاء Mixed parameter
.
use function Chevere parameter mixed ;
$ mixed = mixed ();
$ mixed ( 1 );
$ mixed ( ' 1 ' );
$ mixed ( true );
$ mixed ( null );
استخدم وظيفة union
لإنشاء Union parameter
. قم بتمرير قائمة parameter المراد مطابقتها، ويجب أن تتطابق القيمة المستهدفة مع واحدة على الأقل.
use function Chevere parameter union ;
// Any string or null
$ union = union ( string (), null());
$ union ( ' abc ' );
$ union ( null );
// Any digit string or any integer
$ union = union (
intString (),
integer ()
);
$ union ( ' 100 ' );
$ union ( 100 );
يتم التعامل مع parameter الخاصة array
النوع parameter مركبة تحمل تعريف parameter لكل واحد من أعضائها.
استخدم الدالة arrayp
لإنشاء Array parameter
للوسائط المسماة كمفاتيح صفيف مطلوبة.
use function Chevere parameter arrayp ;
// Empty array
$ array = arrayp ();
$ array ([]);
// Required 'a' => <string>
$ array = arrayp (a: string ());
$ array ([ ' a ' => ' Hello world ' ]);
تدعم parameter المصفوفات المتداخلة بأي عمق:
use function Chevere parameter arrayp ;
use function Chevere parameter float ;
use function Chevere parameter int ;
$ array = arrayp (
id: int (min: 0 ),
items: arrayp (
id: int (min: 0 ),
price: float (min: 0 ),
),
);
$ array ([
' id ' => 1 ,
' items ' => [
' id ' => 25 ,
' price ' => 16.5 ,
]
]);
استخدم سمة ArrayAttr
لتحديد parameter صفيف.
use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes FloatAttr ;
use Chevere parameter Attributes IntAttr ;
#[ArrayAttr(
id: new IntAttr (),
items: new ArrayAttr (
id: new IntAttr (),
price: new FloatAttr (),
),
)]
استخدم الطريقة withRequired
لتحديد parameter المطلوبة.
$ array = $ array
-> withRequired (
username: string (),
email: string ()
);
استخدم الطريقة withOptional
لتحديد parameter الاختيارية.
$ array = $ array
-> withOptional (address: string ());
ملاحظة: سيتم التحقق من صحة parameter الاختيارية فقط في حالة توفير مفتاح مطابق.
استخدم الطريقة withModify
لتحديد تعديل parameter .
$ array = $ array
-> withModify (
username: string ( ' /w+/ ' ),
);
استخدم الطريقة withMakeOptional
لجعل parameter المطلوبة اختيارية.
$ array = $ array
-> withMakeOptional ( ' username ' );
استخدم الطريقة withMakeRequired
لجعل parameter الاختيارية مطلوبة.
$ array = $ array
-> withMakeRequired ( ' email ' );
استخدم الطريقة without
إزالة parameter s.
$ array = $ array
-> without ( ' a ' );
استخدم الطريقة withOptionalMinimum
لتحديد الحد الأدنى لعدد parameter الاختيارية s. مفيد إذا كانت جميع parameter اختيارية ولكن 1.
$ array = $ array
-> withOptionalMinimum ( 1 );
تعتمد parameter التالية على Array.
استخدم الدالة arrayString
لإنشاء ArrayString parameter Interface
لقيم السلسلة. وهو يدعم فقط parameter السلسلة.
use function Chevere parameter arrayString ;
use function Chevere parameter string ;
$ array = arrayString (
test: string (),
);
$ array ([ ' test ' => ' foo ' ]);
استخدم file
الوظيفة لإنشاء Array parameter
لتحميل الملفات.
use function Chevere parameter file ;
$ array = file ();
$ file = [
' name ' => ' foo.txt ' ,
' type ' => ' text/plain ' ,
' tmp_name ' => ' /tmp/phpYzdqkD ' ,
' error ' => 0 ,
' size ' => 123 ,
];
$ array ( $ file );
بشكل افتراضي، يوفر التحقق من صحة الشكل $_FILES
، ولكن يمكنك تحديد قواعد التحقق الخاصة بك. على سبيل المثال، للتحقق من صحة الاسم والمحتويات:
use function Chevere parameter file ;
$ array = file (
name: string ( ' /^.txt$/ ' ),
contents: string ( ' /wage-/ ' ),
);
$ array (
' name ' => ' wage-2024.txt ' ,
' type ' => ' text/plain ' ,
' tmp_name ' => ' /tmp/phpYzdqkD ' ,
' error ' => 0 ,
' size ' => 27 ,
' contents ' => ' yada yada wage-2024 bla bla ' ,
);
يعتبر Traversable|array
من النوع القابل للاجتياز بمثابة parameter مركبة تحتوي على تعريف عام للمفتاح والقيمة. تمكن parameter من وصف هذه المجموعة من العناصر التي تشترك في نفس الشكل.
استخدم الدالة iterable
لإنشاء Iterable parameter
. قم بتمرير parameter V
و K
للمفتاح العام والقيمة.
use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ iterable = iterable ( int (min: 0 ));
$ iterable ([ 0 , 1 , 2 , 3 ]);
كما أنه يعمل مع المفاتيح المسماة:
use function Chevere parameter int ;
use function Chevere parameter iterable ;
use function Chevere parameter string ;
$ iterable = iterable (
V: arrayp (
id: int (min: 0 ),
name: string ( ' ^[w]{1,255} ' ),
)
K: string (),
);
$ iterable ([
' based ' => [
' id ' => 1 ,
' name ' => ' OscarGangas '
],
' fome ' => [
' id ' => 2 ,
' name ' => ' BomboFica '
],
]);
استخدم parameter s
الوظيفة لإنشاء مثيل parameter s
.
use function Chevere parameter s parameter s ;
use function Chevere parameter s string ;
$ parameter s = parameter s (foo: string ());
استخدم arguments
الدالة لإنشاء مثيل Arguments
.
use function Chevere parameter s arguments ;
use function Chevere parameter s string ;
$ arguments = arguments ( $ parameter s , [ ' foo ' => ' bar ' ]);
استخدم الدالة assertNamedArgument
لتأكيد وسيطة مسماة.
use function Chevere parameter s assertNamedArgument ;
use function Chevere parameter s int ;
use function Chevere parameter s parameter s ;
$ parameter = int (min: 10 );
assertNamedArgument (
name: ' foo ' ,
parameter : $ parameter ,
argument: 20
);
استخدم الدالة to parameter
لإنشاء مثيل parameter Interface
من سلسلة نوع. في المثال أدناه، ستكون $ parameter
الناتجة هي Int parameter
.
use function Chevere parameter s to parameter ;
$ parameter = to parameter ( ' int ' );
استخدم الدالة arrayFrom
لإنشاء parameter صفيف من parameter صفيف أخرى. في المثال أدناه، سيحتوي $array
الناتج على مفاتيح name
id
فقط كما هو محدد في $source
.
use function Chevere parameter s arrayFrom ;
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
$ source = arrayp (
id: int (),
name: string (),
email: string (),
age: int (),
);
$ array = arrayFrom ( $ source , ' name ' , ' id ' );
استخدم الدالة takeKeys
لاسترداد مصفوفة تحتوي على مفاتيح من parameter . في المثال أدناه سوف تحتوي $keys
على id
size
.
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s takeKeys ;
$ array = arrayp (
id: int (),
size: int (),
);
$ keys = takeKeys ( $ array );
استخدم الدالة takeFrom
لاسترداد مُكرِّر بالمفاتيح المطلوبة من parameter . في المثال أدناه، سوف ينتج $iterator
مفاتيح size
name
.
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
use function Chevere parameter s takeFrom ;
$ array = arrayp (
id: int (min: 0 ),
size: int (min: 100 ),
name: string (),
);
$ iterator = takeFrom ( $ array , ' size ' , ' name ' );
استخدم parameter sFrom
لإنشاء parameter s
بالمفاتيح المطلوبة من parameter . في المثال أدناه، ستحتوي $ parameter s
على مفاتيح size
name
.
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
use function Chevere parameter s parameter sFrom ;
$ array = arrayp (
id: int (min: 0 ),
size: int (min: 100 ),
name: string (),
);
$ parameter s = parameter sFrom ( $ array , ' size ' , ' name ' );
استخدم وظيفة get parameter s
لاسترداد مثيل parameter s
من كائن يطبق إما parameter AccessInterface
أو parameter sInterface
.
use function Chevere parameter s get parameter s ;
$ parameter s = get parameter s ( $ object );
استخدم الدالة getType
لاسترداد النوع كما تعرفه هذه المكتبة.
use function Chevere parameter s getType ;
$ type = getType ( 1 ); // int
استخدم parameter Attr
لاسترداد كائن يطبق parameter AttributeInterface
من parameter أسلوب دالة أو فئة.
use function Chevere parameter s parameter Attr ;
use Chevere parameter Attributes StringAttr ;
function myFunction (
#[StringAttr( ' /^bin-[d]+$/ ' )]
string $ foo
): void {
// ...
}
$ stringAttr = parameter Attr ( ' foo ' , ' myFunction ' );
$ stringAttr ( ' bin-123 ' );
استخدم معلمة reflectionTo parameter s
لاسترداد مثيل parameter s
من مثيل ReflectionFunction
أو ReflectionMethod
.
use function Chevere parameter reflectionTo parameter s ;
$ parameter s = reflectionTo parameter s ( $ reflection );
استخدم دالة reflectionToReturn
لاسترداد مثيل parameter Interface
من مثيل ReflectionFunction
أو ReflectionMethod
.
use function Chevere parameter reflectionToReturn ;
$ parameter = reflectionToReturn ( $ reflection );
استخدم reflected parameter Attribute
للوظيفة لاسترداد كائن يطبق parameter AttributeInterface
من مثيل Reflection parameter
.
use function Chevere parameter reflected parameter Attribute ;
$ parameter Attribute = reflected parameter Attribute ( $ reflection parameter );
استخدم الوظيفة validated
للتحقق من صحة وسيطات الوظيفة أو الطريقة.
use function Chevere parameter validated ;
$ result = validated ( ' myFunction ' , $ arg1 , $ arg2 ,);
use function Chevere parameter string ;
$ value = ' ahhh ' ;
string ( ' /^a.+/ ' )( $ value );
100
: use function Chevere parameter int ;
$ value = 100 ;
int (min: 100 )( $ value );
use function Chevere parameter int ;
$ value = 1 ;
int (accept: [ 1 , 2 , 3 ])( $ value );
use function Chevere parameter float ;
$ value = 3.1 ;
float (reject: [ 1.1 , 2.1 ])( $ value );
use function Chevere parameter arrayp ;
use function Chevere parameter int ;
use function Chevere parameter string ;
$ value = [
' id ' => 1 ,
' name ' => ' Pepe '
];
arrayp (
id: int (min: 1 ),
name: string ( ' /^[A-Z]{1}w+$/ ' )
)( $ value );
int
القابلة للتكرار: use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ value = [ 1 , 2 , 3 ];
iterable ( int ())( $ value );
use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ value = [
' unila ' => 1 ,
' dorila ' => 2 ,
' tirifila ' => 3 ,
];
iterable (
K: string ( ' /ila$/ ' ),
V: int (min: 1 )
)( $ value );
use function Chevere parameter int ;
use function Chevere parameter null ;
$ value = 1 ;
union ( int (), null())( $ value );
validated()
للحصول على التحقق من صحة الإرجاع وفقًا لجميع القواعد. use function Chevere parameter validated ;
$ result = validated ( ' myFunction ' , $ var );
reflectionTo parameter s()
للحصول على قواعد للتحقق من صحة الوسائط. use ReflectionMethod ;
use Chevere parameter Attributes IntAttr ;
use function Chevere parameter arguments ;
use function Chevere parameter reflectionTo parameter s ;
$ class = new class () {
public function wea (
#[IntAttr(accept: [ 1 , 10 , 100 ])]
int $ base
): void {
}
};
$ object = new $ class ();
$ reflection = new ReflectionMethod ( $ object , ' wea ' );
$ parameter s = reflectionTo parameter s ( $ reflection );
$ args = [ ' base ' => 10 ];
$ parameter s (... $ args ); // valid $args
$ result = $ object -> wea (... $ args );
reflectionToReturn()
للحصول على قواعد للتحقق من صحة قيمة إرجاع الدالة/الطريقة: use ReflectionFunction ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter reflectionToReturn ;
$ function =
#[ReturnAttr(
new IntAttr (min: 1000 )
)]
function ( int $ base ): int {
return 10 * $ base ;
};
$ reflection = new ReflectionFunction ( $ function );
$ return = reflectionToReturn ( $ reflection );
$ base = 10 ;
$ result = $ function ( $ base );
$ result = $ return ( $ result ); // Validates result
استخدم valid()
في نص الوظيفة/الطريقة لبدء التحقق من صحة الوسائط.
Hugo
و Paco
و Luis
:1000
: use Chevere parameter Attributes EnumAttr ;
use function Chevere parameter validate ;
function myEnum (
#[EnumAttr( ' Hugo ' , ' Paco ' , ' Luis ' )]
string $ name ,
#[FloatAttr(min: 1000 )]
float $ money
): void
{
valid ();
// Or single...
valid ( ' name ' );
valid ( ' money ' );
}
$ arg1 = ' Paco ' ;
$ arg2 = 1000.50 ;
myEnum ( $ arg1 , $ arg2 );
0
و 100
: use Chevere parameter Attributes IntAttr ;
use function Chevere parameter validate ;
function myInt (
#[IntAttr(reject: [ 0 , 100 ])]
int $ id
): void
{
valid ();
}
$ value = 50 ;
myInt ( $ value );
use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes StringAttr ;
use Chevere parameter Attributes IterableAttr ;
use function Chevere parameter validate ;
function myArray (
#[ArrayAttr(
id: new IntAttr (min: 1 ),
role: new ArrayAttr (
mask: new IntAttr (accept: [ 64 , 128 , 256 ]),
name: new StringAttr ( ' /[a-z]+/ ' ),
tenants: new IterableAttr (
new IntAttr (min: 1 )
)
),
)]
array $ spooky
): void
{
valid ();
}
$ value = [
' id ' => 10 ,
' role ' => [
' mask ' => 128 ,
' name ' => ' admin ' ,
' tenants ' => [ 1 , 2 , 3 , 4 , 5 ]
],
];
myArray ( $ value );
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes IterableAttr ;
use function Chevere parameter validate ;
function myIterable (
#[IterableAttr(
new IntAttr (),
)]
array $ list = [ 0 , 1 , 2 ]
): void
{
valid ();
}
استخدم الدالة returnAttr()
في نص الدالة/الطريقة.
min: 0, max: 5
العودة: use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new IntAttr (min: 0 , max: 5 )
)]
public function myReturnInt (): int
{
$ result = 1 ;
return returnAttr ()( $ result );
}
use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes StringAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new ArrayAttr (
id: new IntAttr (min: 0 ),
name: new StringAttr ()
)
)]
public function myReturnArray (): array
{
$ result = [
' id ' => 1 ,
' name ' => ' Peoples Hernandez '
];
return returnAttr ()( $ result );
}
وفقًا للاتفاقية، عند حذف ReturnAttr
سيتم استخدام public static function return(): parameter Interface
(إن وجدت) لتحديد قواعد التحقق من صحة الإرجاع.
الوثائق متاحة على chevere.org.
حقوق الطبع والنشر لرودولفو بيريوس أ.
تم ترخيص Chevere بموجب ترخيص Apache، الإصدار 2.0. راجع الترخيص للحصول على نص الترخيص الكامل.
ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.