
Uma biblioteca de utilitário funcional do PHP, porta de JavaScript Lodash/FP e Bibliotecas Ramda para Php.
Todas as funções são livres de efeito colateral e automaticamente com curry , os dados são imutáveis .
O parâmetro de coleção Iterable geralmente é fornecido por último para tornar a curry conveniente.
A avaliação preguiçosa / tardia é suportada em pipelines funcionais.
Vá para https://idlephp.tech para obter mais detalhes, documentação e exemplos.
PHP 7.4 ou superior
composer require miroshnikov/idles
Observação
Atualmente, o IDLES está em desenvolvimento ativo. O roteiro é adicionar todos os métodos das bibliotecas Lodash e Ramda e algumas ferramentas funcionais.
concat(?iterable $ array, $ value ): iterable Concatina $array com iterables/valores adicionais
count(callable $ predicate , ?iterable $ collection ): int Conta o número de itens em $collection que corresponde ao $predicate
countBy(callable $ iteratee , ?iterable $ collection ): array Retorna uma matriz: [ $iteratee($value) => Número de vezes que o $iteratee($value) foi encontrado em $collection ]
drop(int $ n , ?iterable $ collection ): iterable Pula os primeiros $n elemens e retorna o restante do iterável
dropRight(int $ n , ?iterable $ collection ): iterable Pula os últimos $n elementos
findIndex(callable $ predicate , ?iterable $ collection ): int Como find , mas retorna o índice do primeiro elemento predicado retorna verdadeiro para, -1 se não for encontrado
findLastIndex(callable $ predicate , ?iterable $ collection ): int Como find , mas retorna o índice do último elemento predicado, retorna a verdade para, -1 se não for encontrado
flatten(?iterable $ collection ): iterableAplica um único nível de nível de profundidade.
flattenDeep(?iterable $ collection ): iterableIterable relace.
flattenDepth(int $ depth , ?iterable $ collection ): iterableApontar recursivamente a matriz até os tempos de profundidade.
fromPairs(?iterable $ collection ): array Cria um novo registro de uma lista de pares de valor-chave. O inverso das toPairs .
head(?iterable $ collecton )Recebe o primeiro elemento de iterável
indexOf( $ value , ?iterable $ collection ): int Retorna o índice da primeira ocorrência de $value na $collection , else -1.
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayRetorna valores únicos que estão incluídos nos dois registros
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array Como intersection , mas chama $iteratee para cada elemento antes da comparação.
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array Como intersection , mas chama $comparator para comparar elementos.
join(string $ separator , ?iterable $ collection ): string Junta -se a elementos iteráveis separados por $separator
last(?iterable $ collecton )Recebe o último elemento de iterável
nth (int $ offset , ?iterable $ collection ) Retorna o elemento $offset . Se $offset for negativo, o elemento no comprimento do índice + $offset será retornado.
remove(int $ start , int $ count , ?iterable $ iterable ): array Remove os itens de $iterable a partir de $start e contendo elementos $count .
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable Retrua uma fatia de $iterable de $start up, mas não incluindo, $end .
take(int $ n , ?iterable $ collection ): iterableLeva n os primeiros elementos de iterable
takeRight(int $ n , ?iterable $ collection ): arrayRetorna uma fatia de iterável com n elementos retirados do final.
uniq(?iterable $ collection ): array Remove duplicações usando ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array Como uniq , mas aplique $iteratee punho
uniqWith(callable $ predicate , ?iterable $ collection ): array Como uniq , mas usa $predicate para comparar elementos
without(array $ values , ?iterable $ collection ): iterable Retorna $iterable sem $values
zip (iterable $ a , iterable $ b ): iterableCria um iterável dos elementos agrupados, o primeiro dos quais contém os primeiros elementos dos iteáveis dados, o segundo dos quais contém os segundos elementos e assim por diante.
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable Como zip , exceto que aceita $iteratee para especificar como os valores agrupados devem ser combinados.
all(?callable $ predicate , ?iterable $ collection ): bool Verifica se $predicate retorna truthy para todos os elementos da $collection . Pare quando retornar falsey
any(callable $ predicate , ?iterable $ collection ): bool Verifica se $predicate Returns Truthy para qualquer elemento da $collection . Paradas no primeiro encontrado.
each(callable $ iteratee , ?iterable $ collection ): iterable Itera sobre elementos da $collection . Itereee pode sair da iteração cedo retornando false .
filter(callable $ predicate , ?iterable $ collection ): iterable Retorna elementos $predicate retorna a verdade.
find(?callable $ predicate , ?iterable $ collection ) Retorna o primeiro elemento $predicate retorna a verdade.
flatMap(callable $ iteratee , ?iterable $ collection ): iterableMapas então achatar
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable Como flatMap , mas zomba recursivamente os resultados.
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable Como flatMap , mas achate os resultados mapeados de até $depth
groupBy(callable $ iteratee , ?iterable $ collection ): array Cria uma matriz composta por chaves geradas a partir da execução de cada valor através de $iteratee .
includes( $ value , ?iterable $ collection ): bool Verifica se $value está na $collection .
indexBy(callable $ iteratee , ?iterable $ collection ): iterable Cria um registro composto de chaves geradas a partir dos resultados da execução de cada elemento da $collection através de $iteratee .
map (callable $ iteratee , ?iterable $ collection ) Execute cada elemento na $collection através de $iteratee .
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) Como sortBy , mas permite especificar os pedidos de classificação
partition(callable $ predicate , ?iterable $ collection ): array Split $collection em dois grupos, o primeiro dos quais contém elementos $predicate Returns Truthy, o segundo dos quais contém elementos $predicate retorna falsey.
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) Reduz $collection para um valor que é o resultado acumulado da execução de cada elemento na coleção através de $iteratee
resolve (array $ resolvers , array $ record ): array Adiciona novas propriedades ao $record usando $resolvers .
sort(array $ comparator , ?iterable $ collection ): array Classifica $collection usando a função de $comparator ( $a <=> $b )
sortBy(array $ comparators , ?iterable $ collection ): array Classifica $collection em ordem crescente de acordo com $comparators .
sortWith(array $ comparators , ?iterable $ collection ): array Classifica uma $collection de acordo com uma variedade de funções de comparação ( $a <=> $b )
values(?iterable $ collection ): iterable Retorna um iterável indexado dos valores na $collection .
always ( $ value )Retorna uma função que sempre retorna o valor fornecido.
applyTo ( $ value , callable $ interceptor ) Retorna $interceptor($value) .
ary (int $ n , callable $ fn ): callable Cria uma função que chama $fn , com até $n argumentos, ignorando quaisquer argumentos adicionais.
ascend (callable $ func , $ a , $ b ): callable Faz uma função de comparador ascendente de uma função que retorna um valor que pode ser comparado com <=>
attempt (callable $ fn ) Chama $fn , retornando o resultado ou a exceção capturada.
compose (callable . . . $ funcs ): callable Como pipe , mas chama as funções da direita para a esquerda.
curry (callable $ f ): callable Idles_ const pode ser usado como um espaço reservado.
curryRight (callable $ f ): callable Como curry , mas os argumentos estão precendidos.
descend (callable $ func , $ a , $ b ): callable Faz uma função de comparador descendente de uma função que retorna um valor que pode ser comparado com <=>
flip (callable $ fn ): callableRetorna uma nova função ao curry com os dois primeiros argumentos revertidos
juxt (array $ funcs ): callableAplica uma lista de funções a uma lista de valores.
memoize (callable $ func ): callable Cria uma função que memoriza o resultado de $func . $resolver retorna a tecla de cache do mapa, args [0] por padrão.
negate (callable $ predicate ): callable Cria uma função que nega o resultado da função $predicate .
once (callable $ fn ): callable $fn é chamado apenas uma vez, o primeiro valor é retornado nas invocações subsequentes.
partial (callable $ fn , array $ partials ): callable Cria uma função que chama $fn com $partials antecedidos aos argumentos. Idles_ const pode ser usado como um espaço reservado.
partialRight (callable $ fn , array $ partials ): callable Como partial , mas $partials são anexados.
pipe (callable . . . $ funcs ): callableComposição da função da esquerda para a direita. O primeiro argumento pode ter qualquer arity; Os argumentos restantes devem ser unários.
tap (callable $ interceptor , $ value ) Chama $interceptor($value) então retorna o $value original
times (callable $ iteratee , int $ n ): array Chama o itereee $n vezes, retornando uma matriz dos resultados de cada invocação.
tryCatch (callable $ tryer , callable $ catcher , $ value ) Chama $tryer , se joga, chama $catcher
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable Retorna uma função que verifica se seus argumentos passam todos $predicates .
anyPass (array $ predicates ): callable Retorna uma função que verifica se seus argumentos passam algum dos $predicates .
both (callable $ func1 , callable $ func2 ): callable A função resultante retorna $func1(...$args) se for falsamente ou $func2(...$args) , caso contrário, curto-circuito
cond (array $ pairs ): callable Itera mais de $pairs e chama a função correspondente do primeiro predicado para retornar o verdadeiro.
defaultTo ( $ default )( $ value ) Retorna $value ?? $default
either (callable $ func1 , callable $ func2 ): callable A função resultante retorna $func1(...$args) se for verdade ou $func2(...$args) caso contrário, curto-circuito.
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable A função resultante retorna $onTrue(...$args) se $predicate(...$args) for verdade ou $onFalse(...$args) de outra forma.
not ( $ a ): bool retorna !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) Retorna $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) Retorna $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ a + $ b
dec (int $ number ): intRetorna $ 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 ): intRetorna $ 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 Rounds $number para especificado $precision
subtract (int|float $ a , int|float $ b ): int|float$ a - $ b
sum(?iterable $ collection ): int|floatSoma elementos em iterável
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float Como sum , mas $iteratee é chamado para cada elemento em iterável para gerar o valor a ser resumido.
assignDeep (array $ iterables ): arrayMescla propriedades recursivamente, as chaves numéricas são substituídas.
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayMespere as propriedades da direita para a esquerda, as teclas numéricas são substituídas.
evolve(array $ transformations , ?iterable $ record ): array Cria um novo registro chamando de maneira recursivamente as funções de transformação com as propriedades $record .
extend(?iterable $ source1 , ?iterable $ source2 ): arrayMespere propriedades, as teclas numéricas são substituídas.
has(string|int $ key , ?iterable $ record ): bool Verifica se $record tiver $key
hasPath(string|int|array $ path , ?iterable $ record ): bool Verifica se $path existe em $record
invert(?iterable $ collection ): arraySubstitui as teclas por valores. As chaves duplicadas são substituídas.
keys(?iterable $ record ): iterable Retorna um iterable indexado das chaves no $record .
merge(?iterable $ source1 , ?iterable $ source2 ): arrayMespere propriedades, as teclas numéricas são anexadas.
mergeDeep (array $ iterables ): arrayMescla propriedades recursivamente, as teclas numéricas são anexadas.
mergeLeft(?iterable $ left , ?iterable $ right ): array Chamadas merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array Como $customizer merge , mas se existe uma chave em ambos
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) Cria um novo registro aplicando uma função $updater ao valor no $path dado.
objOf (string $ key , $ value ): array Cria uma array contendo uma única chave => par de valores.
omit(array $ keys , ?iterable $ collection ): iterable O oposto de pick . Retorna o registro sem $keys .
omitBy(callable $ predicate , ?iterable $ record ): iterable O oposto de pickBy . Retorna as propriedades de $record que $predicate retorna falsey.
path (array|string $ path , ?iterable $ collection )Recuperar o valor em um determinado caminho.
paths(array $ paths , ?iterable $ collection ): arrayChaves em, valores out. A ordem é preservada.
pick(array $ keys , ?iterable $ collection ): iterable Retorna registro contendo apenas $keys
pickBy(callable $ predicate , ?iterable $ record ): iterable Retorna registro contendo apenas chaves $predicate retorna a verdade.
pluck (string|int $ key , ?iterable $ collection )Retorna uma nova matriz arrancando a mesma propriedade nomeada de todos os registros da matriz fornecida.
prop (string|int $ key , ?iterable $ record )Retornar a propriedade especificada.
propEq(string|int $ key , $ value , ?iterable $ record ): boolRetorna $ registro [$ key] == $ valor
setPath ( $ path , $ value , ?iterable $ record ) Retornar cópia $record com $path definido com $value
toPairs(?iterable $ record ): iterable Converte um registro em uma matriz de [$key, $value]
where(array $ spec , ?iterable $ record ): bool Verifica se $record atende a especificação, invocando as propriedades $spec com as propriedades correspondentes do $record .
whereAny(array $ spec , ?iterable $ record ): bool Verifica se $record atende a especificação, invocando as propriedades $spec com as propriedades correspondentes do $record . Retorna true se pelo menos um dos predicados retornar true .
whereEq(array $ spec , ?iterable $ test ): bool Verifique se o $test satisfaz a $spec
escape (string $ s ): stringConverte os personagens "&", "<", ">", '"" e "" "em suas entidades HTML correspondentes.
escapeRegExp (string $ regexp ): stringEscapa da expressão regular
split (string $ separator , string $ s ): array Splits String por $separator .
startsWith (string $ target , string $ s ): bool Se a string começar com $target .
toLower (string $ s ): stringConverte string em minúsculas
toUpper (string $ s ): stringConverte a string em maiúsculas
words (string $ pattern , string $ string ): arrayDivide a corda em uma matriz de suas palavras.
collect(?iterable $ iterable ): array Coleta qualquer itemerável em array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool Sempre retorna false
identity ( $ value )Retorna o primeiro argumento que ele recebe.
iterate (callable $ f , $ value ): iterable Retorna um gerador de $value , $f($value) , $f($f($value)) etc.
just ( $ value ): OptionalRetorna um opcional com o valor não nulo especificado
nothing(): OptionalRetorna um opcional vazio
now (): intRetorna o registro de data e hora do número de segundos
just (mixed $ value ): OptionalTalvez/mônada de opção (contêiner) que pode ou não conter um valor não nulo. Tem métodos:
isPresent(): bool - true se não vazio
isEmpty(): bool - true se vazio
get(): mixed - Retorna o valor, jogue a exceção se vazia
orElse(mixed $default): mixed - Retorna o valor contido se o opcional não for vazio ou $default
orElseThrow(Exception $e) - Retorna o valor contido, se presente, de outra forma, jogue uma exceção
map(callable $f): Optional - se um valor estiver presente, aplique o $f a ele e, se o resultado não for nulo, retorne um opcional descrevendo o resultado
flatMap(callable $f): Optional - use em vez de map se $f retornar opcional
filter(callable $predicate): Optional - Se um valor estiver presente e corresponder ao $predicate , retorne um opcional com o valor, caso contrário, um opcional vazio.
size (array|Countable|object|string|callable $ value ): intRetorna o tamanho de um número contável de parâmetros de uma função, lenght de string ou número de propriedades de um objeto
T (... $ args ): bool Sempre retorna true