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. راجع الترخيص للحصول على نص الترخيص الكامل.
ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.