
Una biblioteca de utilidad funcional PHP, puerto de las bibliotecas JavaScript LOdash/FP y Ramda a PHP.
Todas las funciones están libres de efectos secundarios y automáticamente curry , los datos son inmutables .
El parámetro de colección Iterable generalmente se suministra el último para hacer que el curry sea conveniente.
La evaluación perezosa / retrasada se admite en tuberías funcionales.
Vaya a https://idlephp.tech para obtener más detalles, documentación y ejemplos.
PHP 7.4 o superior
composer require miroshnikov/idles
Nota
Actualmente, Idles está bajo desarrollo activo. La hoja de ruta es agregar todos los métodos de las bibliotecas de Ladash y Ramda y algunas herramientas funcionales.
concat(?iterable $ array, $ value ): iterable Concatina $array con iterables/valores adicionales
count(callable $ predicate , ?iterable $ collection ): int Cuenta el número de artículos en $collection que coincide con el $predicate
countBy(callable $ iteratee , ?iterable $ collection ): array Devuelve una matriz: [ $iteratee($value) => Número de veces el $iteratee($value) se encontró en $collection ]
drop(int $ n , ?iterable $ collection ): iterable Omita el primer $n elemens y devuelve el resto de los iterables
dropRight(int $ n , ?iterable $ collection ): iterable Omita los últimos $n elementos
findIndex(callable $ predicate , ?iterable $ collection ): int Como find pero devuelve el índice del predicado de primer elemento devuelve verdady para, -1 si no se encuentra
findLastIndex(callable $ predicate , ?iterable $ collection ): int Como find pero devuelve el índice del predicado de último elemento devuelve verdady para, -1 si no se encuentra
flatten(?iterable $ collection ): iterableAplana iterable de un solo nivel de profundidad.
flattenDeep(?iterable $ collection ): iterableRecursivamente se aplana iterable.
flattenDepth(int $ depth , ?iterable $ collection ): iterableAplanar recursivamente la matriz hasta los tiempos de profundidad.
fromPairs(?iterable $ collection ): array Crea un nuevo registro de una lista de pares de valores clave. El inverso de toPairs .
head(?iterable $ collecton )Obtiene el primer elemento de ITerable
indexOf( $ value , ?iterable $ collection ): int Devuelve el índice de la primera ocurrencia de $value en $collection , else -1.
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayDevuelve valores únicos que se incluyen en ambos registros
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array Como intersection , pero invoca $iteratee para cada elemento antes de la comparación.
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array Como intersection pero invoca $comparator para comparar elementos.
join(string $ separator , ?iterable $ collection ): string Se une a elementos iterables separados por $separator
last(?iterable $ collecton )Obtiene el último elemento de Iterable
nth (int $ offset , ?iterable $ collection ) Devuelve el elemento $offset . Si $offset es negativo, el elemento a la longitud del índice + $offset se devuelve.
remove(int $ start , int $ count , ?iterable $ iterable ): array Elimina artículos de $iterable que comienza en $start y contiene elementos $count .
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable Retrasa una porción de $iterable de $start Up hasta, pero sin incluir, $end .
take(int $ n , ?iterable $ collection ): iterableToma n primeros elementos de itererable
takeRight(int $ n , ?iterable $ collection ): arrayDevuelve una porción de iterable con n elementos tomados desde el final.
uniq(?iterable $ collection ): array Elimina duplicados usando ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array Como uniq pero aplica $iteratee fist
uniqWith(callable $ predicate , ?iterable $ collection ): array Como uniq pero usa $predicate para comparar elementos
without(array $ values , ?iterable $ collection ): iterable Devuelve $iterable sin $values
zip (iterable $ a , iterable $ b ): iterableCrea una iterable de elementos agrupados, el primero de los cuales contiene los primeros elementos de los iterables dados, el segundo contiene los segundos elementos, y así sucesivamente.
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable Como zip excepto que acepta $iteratee para especificar cómo se deben combinar los valores agrupados.
all(?callable $ predicate , ?iterable $ collection ): bool Cheques si $predicate devuelve truthy para todos los elementos de $collection . Detente una vez que devuelve falsey
any(callable $ predicate , ?iterable $ collection ): bool Cheques si $predicate devuelve verdady para cualquier elemento de $collection . Se detiene en primera vez encontrado.
each(callable $ iteratee , ?iterable $ collection ): iterable Itera sobre elementos de $collection . Iterere puede salir temprano de la iteración devolviendo false .
filter(callable $ predicate , ?iterable $ collection ): iterable Devuelve Elementos $predicate devuelve verdady para.
find(?callable $ predicate , ?iterable $ collection ) Devuelve el primer elemento $predicate devuelve verdady para.
flatMap(callable $ iteratee , ?iterable $ collection ): iterableMapas luego aplanar
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable Como flatMap pero aplana recursivamente los resultados.
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable Como flatMap pero aplana los resultados mapeados hasta $depth
groupBy(callable $ iteratee , ?iterable $ collection ): array Crea una matriz compuesta de claves generadas al ejecutar cada valor a través de $iteratee .
includes( $ value , ?iterable $ collection ): bool Cheques si $value está en $collection .
indexBy(callable $ iteratee , ?iterable $ collection ): iterable Crea un registro compuesto por claves generadas a partir de los resultados de ejecutar cada elemento de $collection a través de $iteratee .
map (callable $ iteratee , ?iterable $ collection ) Ejecute cada elemento en $collection a través de $iteratee .
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) Como sortBy pero permite especificar las órdenes de clasificación
partition(callable $ predicate , ?iterable $ collection ): array Dividido $collection en dos grupos, el primero de los cuales contiene elementos $predicate devoluciones para la verdad, el segundo de los cuales contiene elementos $predicate devuelve falsos.
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) Reduce $collection a un valor que es el resultado acumulado de ejecutar cada elemento en colección a través de $iteratee
resolve (array $ resolvers , array $ record ): array Agrega nuevas propiedades a $record usando $resolvers .
sort(array $ comparator , ?iterable $ collection ): array Clasifica $collection usando $comparator ( $a <=> $b ) función
sortBy(array $ comparators , ?iterable $ collection ): array Clasifica $collection en orden ascendente de acuerdo con $comparators .
sortWith(array $ comparators , ?iterable $ collection ): array Clasifica una $collection según una variedad de funciones de comparación ( $a <=> $b )
values(?iterable $ collection ): iterable Devuelve un icertilizado de valores indexado en $collection .
always ( $ value )Devuelve una función que siempre devuelve el valor dado.
applyTo ( $ value , callable $ interceptor ) Devuelve $interceptor($value) .
ary (int $ n , callable $ fn ): callable Crea una función que invoca $fn , con hasta $n argumentos, ignorando cualquier argumento adicional.
ascend (callable $ func , $ a , $ b ): callable Hace una función de comparación ascendente a partir de una función que devuelve un valor que se puede comparar con <=>
attempt (callable $ fn ) Llama a $fn , devolviendo el resultado o la excepción atrapada.
compose (callable . . . $ funcs ): callable Como pipe , pero invoca las funciones de derecha a izquierda.
curry (callable $ f ): callable Idles_ const se puede usar como marcador de posición.
curryRight (callable $ f ): callable Como curry pero los argumentos se preparan.
descend (callable $ func , $ a , $ b ): callable Hace una función de comparación descendente a partir de una función que devuelve un valor que se puede comparar con <=>
flip (callable $ fn ): callableDevuelve una nueva función curry con los dos primeros argumentos revertidos
juxt (array $ funcs ): callableAplica una lista de funciones a una lista de valores.
memoize (callable $ func ): callable Crea una función que memoiza el resultado de $func . $resolver devuelve la tecla de caché MAP, args [0] de forma predeterminada.
negate (callable $ predicate ): callable Crea una función que niega el resultado de la función $predicate .
once (callable $ fn ): callable $fn solo se llama una vez, el primer valor se devuelve en invocaciones posteriores.
partial (callable $ fn , array $ partials ): callable Crea una función que invoca $fn con $partials preferidos a los argumentos. Idles_ const se puede usar como marcador de posición.
partialRight (callable $ fn , array $ partials ): callable Como partial pero se agregan $partials .
pipe (callable . . . $ funcs ): callableComposición de función de izquierda a derecha. El primer argumento puede tener alguna aridad; Los argumentos restantes deben ser unaros.
tap (callable $ interceptor , $ value ) Llama $interceptor($value) y luego devuelve el $value original
times (callable $ iteratee , int $ n ): array Llama a los iteradoe $n veces, devolviendo una matriz de los resultados de cada invocación.
tryCatch (callable $ tryer , callable $ catcher , $ value ) Llama $tryer , si se lanza, llama a $catcher
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable Devuelve una función que verifica si sus argumentos pasan los $predicates .
anyPass (array $ predicates ): callable Devuelve una función que verifica si sus argumentos pasan alguno de los $predicates .
both (callable $ func1 , callable $ func2 ): callable La función resultante devuelve $func1(...$args) si es falsy o $func2(...$args) de lo contrario, cortocircuitado
cond (array $ pairs ): callable Itera más de $pairs e invoca la función correspondiente del primer predicado para devolver la verdad.
defaultTo ( $ default )( $ value ) Devuelve $value ?? $default
either (callable $ func1 , callable $ func2 ): callable La función resultante devuelve $func1(...$args) si es verdad o $func2(...$args) de lo contrario, cortocircuitado.
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable La función resultante devuelve $onTrue(...$args) si $predicate(...$args) es verdad o $onFalse(...$args) de lo contrario.
not ( $ a ): bool ¡Devuelve !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) Devuelve $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) Devuelve $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ A + $ B
dec (int $ number ): intDevuelve $ Número - 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 ): intDevuelve $ número + 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 Ronda $number a $precision especificada
subtract (int|float $ a , int|float $ b ): int|float$ A - $ B
sum(?iterable $ collection ): int|floatSuma elementos en itererable
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float Al igual que sum , pero $iteratee se invoca para cada elemento en Iterable para generar el valor a sumar.
assignDeep (array $ iterables ): arrayFusiona propiedades recursivamente, las teclas numéricas se sobrescriben.
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayFusiona propiedades de derecha a izquierda, se sobrescriben las teclas numéricas.
evolve(array $ transformations , ?iterable $ record ): array Crea un nuevo registro al llamar recursivamente las funciones de transformación con propiedades $record .
extend(?iterable $ source1 , ?iterable $ source2 ): arrayFusiona propiedades, las teclas numéricas se sobrescriben.
has(string|int $ key , ?iterable $ record ): bool Cheques si $record tiene $key
hasPath(string|int|array $ path , ?iterable $ record ): bool Cheques si existe $path en $record
invert(?iterable $ collection ): arrayReemplaza las claves con valores. Las teclas duplicadas se sobrescriben.
keys(?iterable $ record ): iterable Devuelve un Itreable de claves indexado en $record .
merge(?iterable $ source1 , ?iterable $ source2 ): arrayFusiona las propiedades, se agregan teclas numéricas.
mergeDeep (array $ iterables ): arrayFusiona propiedades de forma recursiva, se adjuntan las teclas numéricas.
mergeLeft(?iterable $ left , ?iterable $ right ): array Llama merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array Al igual que merge , pero si existe una clave en ambos registros, $customizer se llama a los valores asociados con la clave
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) Crea un nuevo registro aplicando una función de $updater al valor en la $path dada.
objOf (string $ key , $ value ): array Crea una array que contiene un solo par de valores clave =>.
omit(array $ keys , ?iterable $ collection ): iterable Lo contrario de pick . Devuelve el registro sin $keys .
omitBy(callable $ predicate , ?iterable $ record ): iterable Lo opuesto al pickBy . Devuelve propiedades de $record que $predicate devuelve falsificación para.
path (array|string $ path , ?iterable $ collection )Recuperar el valor en una ruta determinada.
paths(array $ paths , ?iterable $ collection ): arrayClaves en, valores fuera. Se conserva el orden.
pick(array $ keys , ?iterable $ collection ): iterable Registro de devoluciones que contiene solo $keys
pickBy(callable $ predicate , ?iterable $ record ): iterable Registro de devoluciones que contiene solo claves $predicate devuelve verdady para.
pluck (string|int $ key , ?iterable $ collection )Devuelve una nueva matriz arrancando la misma propiedad con nombre de todos los registros en la matriz suministrada.
prop (string|int $ key , ?iterable $ record )Devolver la propiedad especificada.
propEq(string|int $ key , $ value , ?iterable $ record ): boolDevuelve $ registro [$ key] == $ valor
setPath ( $ path , $ value , ?iterable $ record ) Devolver copia $record con $path establecida con $value
toPairs(?iterable $ record ): iterable Convierte un registro en una matriz de [$key, $value]
where(array $ spec , ?iterable $ record ): bool Comprueba si $record satisface la especificación invocando las propiedades $spec con las propiedades correspondientes de $record .
whereAny(array $ spec , ?iterable $ record ): bool Comprueba si $record satisface la especificación invocando las propiedades $spec con las propiedades correspondientes de $record . Devuelve true si al menos uno de los predicados devuelve true .
whereEq(array $ spec , ?iterable $ test ): bool Verifique si la $test satisface el $spec
escape (string $ s ): stringConvierte los personajes "&", "<", ">", '"' y" '"a sus entidades HTML correspondientes.
escapeRegExp (string $ regexp ): stringEscapa de la expresión regular
split (string $ separator , string $ s ): array Splits String por $separator .
startsWith (string $ target , string $ s ): bool Si la cadena comienza con $target .
toLower (string $ s ): stringConvierte la cadena en minúsculas
toUpper (string $ s ): stringConvierte la cadena en la caja superior
words (string $ pattern , string $ string ): arrayDivide una cuerda en una matriz de sus palabras.
collect(?iterable $ iterable ): array Recoge cualquier iterable en array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool Siempre devuelve false
identity ( $ value )Devuelve el primer argumento que recibe.
iterate (callable $ f , $ value ): iterable Devuelve un generador de $value , $f($value) , $f($f($value)) etc.
just ( $ value ): OptionalDevuelve una opcional con el valor no nulo especificado
nothing(): OptionalDevuelve una opcional vacía
now (): intDevuelve la marca de tiempo del número de segundos
just (mixed $ value ): OptionalTal vez/opción Mónada (contenedor) que puede o no contener un valor no nulo. Tiene métodos:
isPresent(): bool - true si no está vacío
isEmpty(): bool - true si está vacío
get(): mixed - devuelve valor, excepción de tirar si está vacío
orElse(mixed $default): mixed : devuelve el valor contenido si lo opcional no es vacío o $default
orElseThrow(Exception $e) - Devuelve el valor contenido, si está presente, de lo contrario lanza una excepción
map(callable $f): Optional : si hay un valor presente, aplique el $f , y si el resultado no es nulo, devuelva una opcional que describe el resultado
flatMap(callable $f): Optional : use en lugar del map si $f devuelve opcional
filter(callable $predicate): Optional : si un valor está presente y coincide con el $predicate , devuelva una opcional con el valor, de lo contrario un opcional vacío.
size (array|Countable|object|string|callable $ value ): intDevuelve el tamaño de un número contable de parámetros de una función, longitud de cadena o número de propiedades de un objeto
T (... $ args ): bool Siempre devuelve true