
مكتبة فائدة وظيفية PHP ، ميناء من مكتبات JavaScript Lodash/FP و Ramda إلى PHP.
جميع الوظائف خالية من التأثير الجانبي وتلقائيًا ، تكون البيانات غير قابلة للتغيير .
عادةً ما يتم توفير معلمة التجميع ITERBLE أخيرًا لجعل الكاري مريحًا.
يتم دعم التقييم الكسول / المتأخر في خطوط الأنابيب الوظيفية.
انتقل إلى https://idlephp.tech لمزيد من التفاصيل والوثائق والأمثلة.
PHP 7.4 أو أعلى
composer require miroshnikov/idles
ملحوظة
IDLES حاليا تحت التطوير النشط. خارطة الطريق هي إضافة جميع الطرق من مكتبات Lodash و Ramda وبعض الأدوات الوظيفية.
concat(?iterable $ array, $ value ): iterable يسلط $array مع تكرار/قيم إضافية
count(callable $ predicate , ?iterable $ collection ): int يحسب عدد العناصر في $collection التي تطابق $predicate
countBy(callable $ iteratee , ?iterable $ collection ): array إرجاع صفيف: [ $iteratee($value) => عدد المرات التي تم فيها العثور على $iteratee($value) في $collection ]
drop(int $ n , ?iterable $ collection ): iterable يتخطى أول $n elemens ويعيد بقية المبتدئين
dropRight(int $ n , ?iterable $ collection ): iterable يتخطى العناصر الأخيرة $n
findIndex(callable $ predicate , ?iterable $ collection ): int مثل find ولكن بإرجاع فهرس العنصر الأول ، يعيد مسند العنصر الحقيقة لـ ، -1 إذا لم يتم العثور عليه
findLastIndex(callable $ predicate , ?iterable $ collection ): int مثل find ولكن بإرجاع فهرس العنصر الأخير ، يعيد مسنده الحقيقة لـ ، -1 إذا لم يتم العثور عليه
flatten(?iterable $ collection ): iterableتتساقط مستوى واحد عميق.
flattenDeep(?iterable $ collection ): iterableمتكررة تتساقط.
flattenDepth(int $ depth , ?iterable $ collection ): iterableصفيف تسطيح متكرر حتى أوقات العمق.
fromPairs(?iterable $ collection ): array ينشئ سجلًا جديدًا من أزواج القيمة الرئيسية. عكس toPairs .
head(?iterable $ collecton )يحصل على العنصر الأول من Itervable
indexOf( $ value , ?iterable $ collection ): int إرجاع فهرس الحدوث الأول $value في $collection ، وإلا 1.
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayإرجاع القيم الفريدة التي يتم تضمينها في كلا السجلين
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array مثل intersection ولكنه يستدعي $iteratee لكل عنصر قبل المقارنة.
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array مثل intersection ولكن يستدعي $comparator لمقارنة العناصر.
join(string $ separator , ?iterable $ collection ): string ينضم إلى العناصر المزعجة مفصولة $separator
last(?iterable $ collecton )يحصل على العنصر الأخير
nth (int $ offset , ?iterable $ collection ) إرجاع عنصر $offset . إذا كان $offset سالبة ، يتم إرجاع العنصر بطول الفهرس + $offset .
remove(int $ start , int $ count , ?iterable $ iterable ): array يزيل العناصر من $iterable بدءًا من $start وتحتوي على عناصر $count .
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable يستعيد شريحة من $iterable من $start حتى ، ولكن لا يشمل $end .
take(int $ n , ?iterable $ collection ): iterableيأخذ n العناصر الأولى من Itelable
takeRight(int $ n , ?iterable $ collection ): arrayيعيد شريحة من العناصر المأخوذة من النهاية.
uniq(?iterable $ collection ): array يزيل التكرارات باستخدام ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array مثل uniq ولكن تطبيق $iteratee pist
uniqWith(callable $ predicate , ?iterable $ collection ): array مثل uniq ولكنه يستخدم $predicate لمقارنة العناصر
without(array $ values , ?iterable $ collection ): iterable إرجاع $iterable بدون $values
zip (iterable $ a , iterable $ b ): iterableيخلق مجموعة من العناصر المجمعة ، أولها يحتوي على العناصر الأولى من التكرار المعطى ، والثاني يحتوي على العناصر الثانية ، وما إلى ذلك.
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable مثل zip باستثناء أنه يقبل $iteratee لتحديد كيفية الجمع بين القيم المجمعة.
all(?callable $ predicate , ?iterable $ collection ): bool يتحقق إذا كان $predicate يعيد truthy لجميع عناصر $collection . توقف بمجرد أن falsey
any(callable $ predicate , ?iterable $ collection ): bool يتحقق إذا كان $predicate يعيد الحقيقة لأي عنصر من $collection . يتوقف على الوجد لأول مرة.
each(callable $ iteratee , ?iterable $ collection ): iterable يتكرر على عناصر $collection . قد يخرج التكرار في وقت مبكر عن طريق العودة false .
filter(callable $ predicate , ?iterable $ collection ): iterable إرجاع العناصر $predicate يرجع الحقيقة ل.
find(?callable $ predicate , ?iterable $ collection ) إرجاع العنصر الأول $predicate يعيد الحقيقة ل.
flatMap(callable $ iteratee , ?iterable $ collection ): iterableالخرائط ثم تسطيح
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable مثل flatMap ولكن متكرر يشهد النتائج.
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable مثل flatMap ولكنه يشوي النتائج المعينة تصل إلى أوقات $depth
groupBy(callable $ iteratee , ?iterable $ collection ): array ينشئ صفيفًا يتكون من مفاتيح تم إنشاؤها من تشغيل كل قيمة من خلال $iteratee .
includes( $ value , ?iterable $ collection ): bool يتحقق إذا كانت $value في $collection .
indexBy(callable $ iteratee , ?iterable $ collection ): iterable ينشئ سجلًا مكونًا من مفاتيح تم إنشاؤها من نتائج تشغيل كل عنصر من عناصر $collection من خلال $iteratee .
map (callable $ iteratee , ?iterable $ collection ) قم بتشغيل كل عنصر في $collection من خلال $iteratee .
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) مثل sortBy ولكن يسمح بتحديد أوامر الفرز
partition(callable $ predicate , ?iterable $ collection ): array تقسيم $collection إلى مجموعتين ، أولهما يحتوي على عناصر $predicate يعيد الحقيقة ، والثانية منها تحتوي على عناصر $predicate strape falsy.
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) يقلل $collection إلى قيمة وهي النتيجة المتراكمة لتشغيل كل عنصر في التجميع من خلال $iteratee
resolve (array $ resolvers , array $ record ): array يضيف خصائص جديدة إلى $record باستخدام $resolvers .
sort(array $ comparator , ?iterable $ collection ): array فرز $collection باستخدام وظيفة $comparator ( $a <=> $b )
sortBy(array $ comparators , ?iterable $ collection ): array فرز $collection بترتيب تصاعدي وفقا $comparators .
sortWith(array $ comparators , ?iterable $ collection ): array يصنف $collection وفقًا لمجموعة من وظائف المقارنة ( $a <=> $b )
values(?iterable $ collection ): iterable إرجاع مجموعة فهرسة من القيم في $collection .
always ( $ value )إرجاع وظيفة تُرجع دائمًا القيمة المحددة.
applyTo ( $ value , callable $ interceptor ) إرجاع $interceptor($value) .
ary (int $ n , callable $ fn ): callable ينشئ وظيفة تستدعي $fn ، مع حجج تصل إلى $n ، وتجاهل أي وسيطات إضافية.
ascend (callable $ func , $ a , $ b ): callable يجعل وظيفة المقارنة الصعودية من وظيفة تُرجع قيمة يمكن مقارنتها بـ <=>
attempt (callable $ fn ) استدعاء $fn ، وإعادة إما النتيجة أو الاستثناء الذي تم صيده.
compose (callable . . . $ funcs ): callable مثل pipe ولكن يستدعي الوظائف من اليمين إلى اليسار.
curry (callable $ f ): callable Idles_ const يمكن استخدامها كعنصر نائب.
curryRight (callable $ f ): callable مثل curry ولكن الحجج مسبقة.
descend (callable $ func , $ a , $ b ): callable يجعل وظيفة المقارنة التنازلية من وظيفة تُرجع قيمة يمكن مقارنتها بـ <=>
flip (callable $ fn ): callableإرجاع وظيفة جديدة للكاري مع عكس الوسيطتين الأوليين
juxt (array $ funcs ): callableيطبق قائمة الوظائف على قائمة القيم.
memoize (callable $ func ): callable يخلق وظيفة تُسوق نتيجة $func . $resolver يرجع مفتاح ذاكرة التخزين المؤقت MAP ، ARGS [0] افتراضيًا.
negate (callable $ predicate ): callable يخلق وظيفة تنفي نتيجة وظيفة $predicate .
once (callable $ fn ): callable يتم استدعاء $fn مرة واحدة فقط ، يتم إرجاع القيمة الأولى في دعوات لاحقة.
partial (callable $ fn , array $ partials ): callable ينشئ وظيفة تستدعي $fn مع $partials تم إعدادها إلى الحجج. Idles_ const يمكن استخدامها كعنصر نائب.
partialRight (callable $ fn , array $ partials ): callable مثل partial ولكن $partials تم إلحاقها.
pipe (callable . . . $ funcs ): callableتكوين وظيفة من اليسار إلى اليمين. الحجة الأولى قد يكون لها أي قسوة. يجب أن تكون الحجج المتبقية أحادية.
tap (callable $ interceptor , $ value ) المكالمات $interceptor($value) ثم إرجاع $value
times (callable $ iteratee , int $ n ): array يستدعي Terteree $n مرات ، وإعادة مجموعة من نتائج كل استدعاء.
tryCatch (callable $ tryer , callable $ catcher , $ value ) استدعاء $tryer ، إذا كان يلقي ، اتصل على $catcher
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable إرجاع وظيفة تتحقق مما إذا كانت وسائطها تمر جميع $predicates .
anyPass (array $ predicates ): callable إرجاع وظيفة تتحقق مما إذا كانت الوسائط الخاصة بها تمر بأي من $predicates .
both (callable $ func1 , callable $ func2 ): callable إرجاع الوظيفة الناتجة $func1(...$args) إذا كان falsy أو $func2(...$args) خلاف ذلك ، دائرة قصيرة
cond (array $ pairs ): callable يكرر أكثر من $pairs ويستدعي الوظيفة المقابلة لأول مسند لإعادة الحقيقة.
defaultTo ( $ default )( $ value ) إرجاع $value ؟؟ $default
either (callable $ func1 , callable $ func2 ): callable إرجاع الوظيفة الناتجة $func1(...$args) إذا كانت الحقيقة أو $func2(...$args) خلاف ذلك ، ذي دائرة قصيرة.
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable إرجاع الوظيفة الناتجة $onTrue(...$args) إذا كان $predicate(...$args) هو الحقيقة أو $onFalse(...$args) خلاف ذلك.
not ( $ a ): bool عائدات !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) إرجاع $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) إرجاع $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ a + $ b
dec (int $ number ): intإرجاع رقم $ - 1
divide (int|float $ a , int|float $ b ): int|float$ a / $ b
gt ( $ a , $ b ): bool$ a> $ b
gte ( $ a , $ b ): bool$ a> = $ b
inc (int $ number ): intإرجاع رقم $ + 1
lt ( $ a , $ b ): bool$ a <$ b
lte ( $ a , $ b ): bool$ a <= $ b
modulo (int|float $ a , int|float $ b ): int$ a ٪ $ b
multiply (int|float $ a , int|float $ b ): int|float$ a * $ b
round (int $ precision , int|float $ number ): float جولات $number إلى $precision المحددة
subtract (int|float $ a , int|float $ b ): int|float$ a - $ b
sum(?iterable $ collection ): int|floatيلخص عناصر في Itervable
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float مثل sum ولكن يتم استدعاء $iteratee لكل عنصر في ITERFIR لتوليد القيمة المراد تلخيصها.
assignDeep (array $ iterables ): arrayدمج الخصائص بشكل متكرر ، يتم كتابة المفاتيح الرقمية.
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayدمج الخصائص من اليمين إلى اليسار ، يتم كتابة المفاتيح الرقمية.
evolve(array $ transformations , ?iterable $ record ): array ينشئ سجلًا جديدًا عن طريق استدعاء وظائف التحول بشكل متكرر مع خصائص $record .
extend(?iterable $ source1 , ?iterable $ source2 ): arrayدمج الخصائص ، مفاتيح رقمية تكتتب.
has(string|int $ key , ?iterable $ record ): bool يتحقق إذا كان $record يحتوي على $key
hasPath(string|int|array $ path , ?iterable $ record ): bool يتحقق إذا كان $path موجود في $record
invert(?iterable $ collection ): arrayيحل محل المفاتيح بالقيم. يتم كتابة مفاتيح مكررة.
keys(?iterable $ record ): iterable إرجاع فهرسة مفهرسة من المفاتيح في $record .
merge(?iterable $ source1 , ?iterable $ source2 ): arrayتم دمج الخصائص ، مفاتيح رقمية.
mergeDeep (array $ iterables ): arrayدمج الخصائص بشكل متكرر ، يتم إلحاق المفاتيح الرقمية.
mergeLeft(?iterable $ left , ?iterable $ right ): array merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array مثل merge ولكن في حالة وجود مفتاح في كلا السجلين ، يتم استدعاء $customizer للقيم المرتبطة بالمفتاح
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) ينشئ سجلًا جديدًا عن طريق تطبيق وظيفة $updater على القيمة في $path المحدد.
objOf (string $ key , $ value ): array ينشئ array يحتوي على مفتاح واحد => زوج القيمة.
omit(array $ keys , ?iterable $ collection ): iterable عكس pick . إرجاع سجل بدون $keys .
omitBy(callable $ predicate , ?iterable $ record ): iterable عكس pickBy . إرجاع خصائص $record أن $predicate يعيد خطأ ل.
path (array|string $ path , ?iterable $ collection )استرداد القيمة في مسار معين.
paths(array $ paths , ?iterable $ collection ): arrayمفاتيح في ، القيم خارج. يتم الحفاظ على النظام.
pick(array $ keys , ?iterable $ collection ): iterable سجل الإرجاع يحتوي على $keys فقط
pickBy(callable $ predicate , ?iterable $ record ): iterable سجل الإرجاع يحتوي على مفاتيح فقط $predicate يعود الحقيقة ل.
pluck (string|int $ key , ?iterable $ collection )إرجاع مجموعة جديدة عن طريق نتف نفس الخاصية المسماة قبالة جميع السجلات في المصفوفة المقدمة.
prop (string|int $ key , ?iterable $ record )إرجاع الخاصية المحددة.
propEq(string|int $ key , $ value , ?iterable $ record ): boolإرجاع سجل $ [$ key] == $ value
setPath ( $ path , $ value , ?iterable $ record ) Return Copy $record مع تعيين $path $value
toPairs(?iterable $ record ): iterable يحول سجل إلى مجموعة من [$key, $value]
where(array $ spec , ?iterable $ record ): bool يتحقق إذا كان $record يفي بالمواصفات من خلال استدعاء خصائص $spec مع الخصائص المقابلة $record .
whereAny(array $ spec , ?iterable $ record ): bool يتحقق إذا كان $record يفي بالمواصفات من خلال استدعاء خصائص $spec مع الخصائص المقابلة $record . إرجاع true إذا كان واحد على الأقل من المتنبئين يعود true .
whereEq(array $ spec , ?iterable $ test ): bool تحقق مما إذا كان $test يرضي $spec
escape (string $ s ): stringيحول الأحرف "و" و "<" و ">" و "" و "" إلى كيانات HTML المقابلة.
escapeRegExp (string $ regexp ): stringيهرب التعبير العادي
split (string $ separator , string $ s ): array تقسيم السلسلة بواسطة $separator .
startsWith (string $ target , string $ s ): bool إذا بدأت سلسلة $target .
toLower (string $ s ): stringيحول السلسلة إلى الحالة السفلية
toUpper (string $ s ): stringيحول السلسلة إلى الحالة العليا
words (string $ pattern , string $ string ): arrayتقسيم السلسلة إلى مجموعة من كلماتها.
collect(?iterable $ iterable ): array يجمع أي شيء في array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool يعود دائما false
identity ( $ value )إرجاع الحجة الأولى التي يتلقاها.
iterate (callable $ f , $ value ): iterable إرجاع مولد $value ، $f($value) ، $f($f($value)) وما إلى ذلك.
just ( $ value ): Optionalإرجاع اختياري مع القيمة غير الفريدة المحددة
nothing(): Optionalإرجاع اختياري فارغ
now (): intيعيد الطابع الزمني لعدد الثواني
just (mixed $ value ): Optionalربما/خيار موناد (الحاوية) التي قد تحتوي أو لا تحتوي على قيمة غير خالية. لديه طرق:
isPresent(): bool - true إن لم يكن فارغًا
isEmpty(): bool - true إذا فارغة
get(): mixed - قيمة الإرجاع ، رمي استثناء إذا فارغة
orElse(mixed $default): mixed - إرجاع القيمة المحتوية إذا كان الاختياري غير فارغ أو $default
orElseThrow(Exception $e) - إرجاع القيمة المحتوية ، إن وجدت ، وإلا رمي استثناء
map(callable $f): Optional - في حالة وجود قيمة ، قم بتطبيق $f عليها ، وإذا كانت النتيجة غير خالية ، فقم بإرجاع وصف اختياري للنتيجة
flatMap(callable $f): Optional - استخدم بدلاً من map إذا كان $f إرجاع اختياري
filter(callable $predicate): Optional - إذا كانت القيمة موجودة وتطابق $predicate ، فقم بإرجاع اختياري بالقيمة ، وإلا اختياريًا فارغًا.
size (array|Countable|object|string|callable $ value ): intإرجاع حجم عدد القابل للعد ، وعدد المعلمات لوظيفة ، أو lenght من سلسلة أو عدد خصائص كائن ما
T (... $ args ): bool يعود دائما true