
Perpustakaan Utilitas Fungsional PHP, Port JavaScript Lodash/FP dan RAMDA Libraries ke PHP.
Semua fungsi bebas efek samping dan secara otomatis kari , data tidak dapat diubah .
Parameter koleksi iterable biasanya disediakan terakhir untuk membuat kari lebih nyaman.
Evaluasi malas / tertunda didukung dalam pipa fungsional.
Pergi ke https://idlePhp.tech untuk detail, dokumentasi, dan contoh lebih lanjut.
PHP 7.4 atau lebih tinggi
composer require miroshnikov/idles
Catatan
Idles saat ini sedang dalam pengembangan aktif. Roadmap adalah untuk menambahkan semua metode dari perpustakaan Lodash dan Ramda dan beberapa alat fungsional.
concat(?iterable $ array, $ value ): iterable Menggabungkan $array dengan iterables/nilai tambahan
count(callable $ predicate , ?iterable $ collection ): int Menghitung jumlah item dalam $collection yang cocok dengan $predicate
countBy(callable $ iteratee , ?iterable $ collection ): array Mengembalikan array: [ $iteratee($value) => berapa kali $iteratee($value) ditemukan di $collection ]
drop(int $ n , ?iterable $ collection ): iterable Lewati $n Elemens pertama dan mengembalikan sisa yang dapat diulangi
dropRight(int $ n , ?iterable $ collection ): iterable Melewati elemen $n terakhir
findIndex(callable $ predicate , ?iterable $ collection ): int Seperti find tetapi mengembalikan indeks predikat elemen pertama mengembalikan kebenaran, -1 jika tidak ditemukan
findLastIndex(callable $ predicate , ?iterable $ collection ): int Seperti find tetapi mengembalikan indeks predikat elemen terakhir mengembalikan kebenaran untuk, -1 jika tidak ditemukan
flatten(?iterable $ collection ): iterableRata -rata dalam satu tingkat dalam.
flattenDeep(?iterable $ collection ): iterableRekursif meratakannya.
flattenDepth(int $ depth , ?iterable $ collection ): iterableSusun ratakan secara rekursif hingga kedalaman waktu.
fromPairs(?iterable $ collection ): array Membuat catatan baru dari daftar pasangan nilai kunci. Kebalikan dari toPairs .
head(?iterable $ collecton )Mendapat elemen pertama dari iterable
indexOf( $ value , ?iterable $ collection ): int Mengembalikan indeks kejadian pertama dari $value dalam $collection , selain itu -1.
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayMengembalikan nilai unik yang termasuk dalam kedua catatan
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array Seperti intersection tetapi memanggil $iteratee untuk setiap elemen sebelum perbandingan.
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array Seperti intersection tetapi meminta $comparator untuk membandingkan elemen.
join(string $ separator , ?iterable $ collection ): string Bergabung dengan elemen iterable yang dipisahkan oleh $separator
last(?iterable $ collecton )Mendapat elemen terakhir dari iterable
nth (int $ offset , ?iterable $ collection ) Mengembalikan elemen $offset . Jika $offset negatif elemen pada panjang indeks + $offset dikembalikan.
remove(int $ start , int $ count , ?iterable $ iterable ): array Menghapus item dari $iterable mulai dari $start dan berisi elemen $count .
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable Latih ulang sepotong $iterable dari $start hingga, tetapi tidak termasuk, $end .
take(int $ n , ?iterable $ collection ): iterableMengambil n elemen pertama dari iterable
takeRight(int $ n , ?iterable $ collection ): arrayMengembalikan sepotong iterable dengan N elemen yang diambil dari akhir.
uniq(?iterable $ collection ): array Menghapus duplikat menggunakan ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array Seperti uniq tapi terapkan $iteratee fist
uniqWith(callable $ predicate , ?iterable $ collection ): array Seperti uniq tetapi menggunakan $predicate untuk membandingkan elemen
without(array $ values , ?iterable $ collection ): iterable Mengembalikan $iterable tanpa $values
zip (iterable $ a , iterable $ b ): iterableMenciptakan unsur -unsur yang dikelompokkan, yang pertama berisi elemen -elemen pertama dari iterables yang diberikan, yang kedua berisi elemen kedua, dan sebagainya.
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable Seperti zip kecuali bahwa ia menerima $iteratee untuk menentukan bagaimana nilai yang dikelompokkan harus digabungkan.
all(?callable $ predicate , ?iterable $ collection ): bool Memeriksa apakah $predicate mengembalikan truthy untuk semua elemen $collection . Berhenti begitu mengembalikan falsey
any(callable $ predicate , ?iterable $ collection ): bool Memeriksa apakah $predicate mengembalikan kebenaran untuk setiap elemen $collection . Berhenti pada ditemukan pertama kali.
each(callable $ iteratee , ?iterable $ collection ): iterable Iterasi di atas elemen $collection . Iterate dapat keluar dari iterasi lebih awal dengan mengembalikan false .
filter(callable $ predicate , ?iterable $ collection ): iterable Mengembalikan elemen $predicate mengembalikan kebenaran untuk.
find(?callable $ predicate , ?iterable $ collection ) Mengembalikan elemen pertama $predicate mengembalikan kebenaran untuk.
flatMap(callable $ iteratee , ?iterable $ collection ): iterablePeta kemudian ratakan
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable Seperti flatMap tetapi secara rekursif meratakan hasilnya.
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable Seperti flatMap tetapi meratakan hasil yang dipetakan hingga $depth
groupBy(callable $ iteratee , ?iterable $ collection ): array Membuat array yang terdiri dari kunci yang dihasilkan dari menjalankan setiap nilai melalui $iteratee .
includes( $ value , ?iterable $ collection ): bool Periksa apakah $value dalam $collection .
indexBy(callable $ iteratee , ?iterable $ collection ): iterable Membuat catatan yang terdiri dari kunci yang dihasilkan dari hasil menjalankan setiap elemen $collection melalui $iteratee .
map (callable $ iteratee , ?iterable $ collection ) Jalankan setiap elemen dalam $collection melalui $iteratee .
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) Seperti sortBy tetapi memungkinkan menentukan pesanan sortir
partition(callable $ predicate , ?iterable $ collection ): array Pisahkan $collection menjadi dua grup, yang pertama berisi elemen $predicate returns truthy, yang kedua berisi elemen $predicate mengembalikan falley untuk.
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) Mengurangi $collection ke nilai yang merupakan akumulasi hasil dari menjalankan setiap elemen dalam koleksi melalui $iteratee
resolve (array $ resolvers , array $ record ): array Menambahkan Properti Baru ke $record Menggunakan $resolvers .
sort(array $ comparator , ?iterable $ collection ): array Sorts $collection menggunakan $comparator ( $a <=> $b ) FUNGSI
sortBy(array $ comparators , ?iterable $ collection ): array Sorts $collection dalam urutan naik menurut $comparators .
sortWith(array $ comparators , ?iterable $ collection ): array Sorts a $collection sesuai dengan serangkaian perbandingan ( $a <=> $b ) Fungsi
values(?iterable $ collection ): iterable Mengembalikan nilai yang diindeks dari nilai dalam $collection .
always ( $ value )Mengembalikan fungsi yang selalu mengembalikan nilai yang diberikan.
applyTo ( $ value , callable $ interceptor ) Mengembalikan $interceptor($value) .
ary (int $ n , callable $ fn ): callable Membuat fungsi yang memanggil $fn , dengan argumen hingga $n , mengabaikan argumen tambahan.
ascend (callable $ func , $ a , $ b ): callable Membuat fungsi pembanding naik dari fungsi yang mengembalikan nilai yang dapat dibandingkan dengan <=>
attempt (callable $ fn ) Panggilan $fn , mengembalikan hasil atau pengecualian yang tertangkap.
compose (callable . . . $ funcs ): callable Seperti pipe tetapi memohon fungsi dari kanan ke kiri.
curry (callable $ f ): callable Idles_ const dapat digunakan sebagai placeholder.
curryRight (callable $ f ): callable Seperti curry tetapi argumen sudah disiapkan.
descend (callable $ func , $ a , $ b ): callable Membuat fungsi pembanding yang menurun dari fungsi yang mengembalikan nilai yang dapat dibandingkan dengan <=>
flip (callable $ fn ): callableMengembalikan fungsi kari baru dengan dua argumen pertama terbalik
juxt (array $ funcs ): callableMenerapkan daftar fungsi ke daftar nilai.
memoize (callable $ func ): callable Membuat fungsi yang memoisasi hasil $func . $resolver mengembalikan kunci cache peta, args [0] secara default.
negate (callable $ predicate ): callable Membuat fungsi yang meniadakan hasil fungsi $predicate .
once (callable $ fn ): callable $fn hanya dipanggil sekali, nilai pertama dikembalikan dalam doa berikutnya.
partial (callable $ fn , array $ partials ): callable Membuat fungsi yang memohon $fn dengan $partials yang dipersiapkan dengan argumen. Idles_ const dapat digunakan sebagai placeholder.
partialRight (callable $ fn , array $ partials ): callable Seperti partial tetapi $partials ditambahkan.
pipe (callable . . . $ funcs ): callableKomposisi fungsi kiri-ke-kanan. Argumen pertama mungkin memiliki arity; Argumen yang tersisa harus unary.
tap (callable $ interceptor , $ value ) Panggilan $interceptor($value) kemudian mengembalikan $value asli
times (callable $ iteratee , int $ n ): array Panggilan iterate $n kali, mengembalikan array hasil dari setiap doa.
tryCatch (callable $ tryer , callable $ catcher , $ value ) Panggilan $tryer , jika dilemparkan, panggilan $catcher
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable Mengembalikan fungsi yang memeriksa apakah argumennya melewati semua $predicates .
anyPass (array $ predicates ): callable Mengembalikan fungsi yang memeriksa apakah argumennya melewati salah satu $predicates .
both (callable $ func1 , callable $ func2 ): callable Fungsi yang dihasilkan mengembalikan $func1(...$args) jika itu falsy atau $func2(...$args) Sebaliknya, siram pendek
cond (array $ pairs ): callable Iterasi lebih dari $pairs dan memohon fungsi yang sesuai dari predikat pertama untuk mengembalikan kebenaran.
defaultTo ( $ default )( $ value ) Mengembalikan $value ?? $default
either (callable $ func1 , callable $ func2 ): callable Fungsi yang dihasilkan mengembalikan $func1(...$args) Jika itu kebenaran atau $func2(...$args) Sebaliknya, siram pendek.
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable Fungsi yang dihasilkan mengembalikan $onTrue(...$args) jika $predicate(...$args) adalah kebenaran atau $onFalse(...$args) sebaliknya.
not ( $ a ): bool kembali !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) Mengembalikan $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) Mengembalikan $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ A + $ b
dec (int $ number ): intMengembalikan $ Number - 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 ): intMengembalikan $ Number + 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 Putaran $number untuk $precision yang ditentukan
subtract (int|float $ a , int|float $ b ): int|float$ A - $ b
sum(?iterable $ collection ): int|floatMerangkum elemen dalam iterable
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float Seperti sum tetapi $iteratee dipanggil untuk setiap elemen yang dapat menghasilkan nilai yang akan dijumlahkan.
assignDeep (array $ iterables ): arrayMenggabungkan properti secara rekursif, tombol numerik ditimpa.
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayMenggabungkan properti dari kanan ke kiri, tombol numerik ditimpa.
evolve(array $ transformations , ?iterable $ record ): array Membuat catatan baru dengan secara rekursif memanggil fungsi transformasi dengan $record .
extend(?iterable $ source1 , ?iterable $ source2 ): arrayMenggabungkan properti, tombol numerik ditimpa.
has(string|int $ key , ?iterable $ record ): bool Memeriksa apakah $record memiliki $key
hasPath(string|int|array $ path , ?iterable $ record ): bool Memeriksa apakah $path ada di $record
invert(?iterable $ collection ): arrayMengganti kunci dengan nilai. Kunci duplikat ditimpa.
keys(?iterable $ record ): iterable Mengembalikan kunci yang diindeks dari kunci di $record .
merge(?iterable $ source1 , ?iterable $ source2 ): arrayGabungan properti, tombol numerik ditambahkan.
mergeDeep (array $ iterables ): arrayMenggabungkan properti secara rekursif, tombol numerik ditambahkan.
mergeLeft(?iterable $ left , ?iterable $ right ): array panggilan merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array Seperti merge tetapi jika ada kunci di kedua catatan, $customizer dipanggil ke nilai yang terkait dengan kunci
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) Membuat catatan baru dengan menerapkan fungsi $updater ke nilai pada $path yang diberikan.
objOf (string $ key , $ value ): array Membuat array yang berisi satu kunci => pasangan nilai.
omit(array $ keys , ?iterable $ collection ): iterable Kebalikan dari pick . Rekor Pengembalian Tanpa $keys .
omitBy(callable $ predicate , ?iterable $ record ): iterable Kebalikan dari pickBy . Mengembalikan properti $record yang $predicate mengembalikan falley.
path (array|string $ path , ?iterable $ collection )Mengambil nilai pada jalur yang diberikan.
paths(array $ paths , ?iterable $ collection ): arrayKunci masuk, nilai keluar. Pesanan dipertahankan.
pick(array $ keys , ?iterable $ collection ): iterable Rekor pengembalian hanya berisi $keys
pickBy(callable $ predicate , ?iterable $ record ): iterable Catatan Pengembalian yang hanya berisi tombol $predicate Returns Truthy untuk.
pluck (string|int $ key , ?iterable $ collection )Mengembalikan array baru dengan mencabut properti bernama yang sama dari semua catatan dalam array yang disediakan.
prop (string|int $ key , ?iterable $ record )Mengembalikan properti yang ditentukan.
propEq(string|int $ key , $ value , ?iterable $ record ): boolMengembalikan $ Record [$ key] == nilai $
setPath ( $ path , $ value , ?iterable $ record ) Return copy $record dengan $path set dengan $value
toPairs(?iterable $ record ): iterable Mengubah catatan menjadi array [$key, $value]
where(array $ spec , ?iterable $ record ): bool Periksa apakah $record memenuhi spec dengan memohon properti $spec dengan properti $record yang sesuai.
whereAny(array $ spec , ?iterable $ record ): bool Periksa apakah $record memenuhi spec dengan memohon properti $spec dengan properti $record yang sesuai. Kembali true jika setidaknya salah satu predikat mengembalikan true .
whereEq(array $ spec , ?iterable $ test ): bool Periksa apakah $test memenuhi $spec
escape (string $ s ): stringMengubah karakter "&", "<", ">", '"', dan" '"ke entitas HTML yang sesuai.
escapeRegExp (string $ regexp ): stringLolos dari ekspresi reguler
split (string $ separator , string $ s ): array Membagi string dengan $separator .
startsWith (string $ target , string $ s ): bool Jika string dimulai dengan $target .
toLower (string $ s ): stringMengubah string ke huruf kecil
toUpper (string $ s ): stringMengubah string ke huruf besar
words (string $ pattern , string $ string ): arrayMembagi string menjadi array kata -katanya.
collect(?iterable $ iterable ): array Mengumpulkan apa pun yang dapat diulang ke dalam array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool Selalu mengembalikan false
identity ( $ value )Mengembalikan argumen pertama yang diterimanya.
iterate (callable $ f , $ value ): iterable Mengembalikan generator $value , $f($value) , $f($f($value)) dll.
just ( $ value ): OptionalMengembalikan opsional dengan nilai non-nol yang ditentukan
nothing(): OptionalMengembalikan opsional kosong
now (): intMengembalikan cap waktu jumlah detik
just (mixed $ value ): OptionalMungkin/Opsi Monad (wadah) yang mungkin atau tidak mengandung nilai non-nol. Memiliki metode:
isPresent(): bool - true jika tidak kosong
isEmpty(): bool - true jika kosong
get(): mixed - nilai pengembalian, lempar pengecualian jika kosong
orElse(mixed $default): mixed - mengembalikan nilai yang terkandung jika opsional tidak tetap atau $default
orElseThrow(Exception $e) - Mengembalikan nilai yang terkandung, jika ada, jika tidak, lemparkan pengecualian
map(callable $f): Optional - Jika ada nilai, terapkan $f ke sana, dan jika hasilnya non -null, kembalikan opsional yang menggambarkan hasilnya
flatMap(callable $f): Optional - Gunakan alih -alih map jika $f mengembalikan Opsional
filter(callable $predicate): Optional - Jika nilai ada dan cocok dengan $predicate , kembalikan opsional dengan nilai, jika tidak opsional kosong.
size (array|Countable|object|string|callable $ value ): intMengembalikan ukuran yang dapat dihitung, jumlah parameter suatu fungsi, lenght string atau jumlah properti suatu objek
T (... $ args ): bool Selalu kembali true