
Библиотека функциональных утилит PHP, порт JavaScript Lodash/FP и Ramda Libraries для PHP.
Все функции свободны от побочных эффектов и автоматически карриальны , данные неизменны .
Итерный параметр сбора обычно поставляется в последнее время, чтобы сделать каррики удобными.
Ленивая / отсроченная оценка поддерживается в функциональных трубопроводах.
Зайдите на https://idlephp.tech для получения более подробной информации, документации и примеров.
PHP 7.4 или выше
composer require miroshnikov/idles
Примечание
IDLE в настоящее время находится в активной разработке. Дорожная карта должна добавить все методы из библиотек Lodash и Ramda и некоторые функциональные инструменты.
concat(?iterable $ array, $ value ): iterable Concatinates $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 )Получает первый элемент итерабильного
indexOf( $ value , ?iterable $ collection ): int Возвращает индекс первого появления $value в $collection , else -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 Repluns с кусочком $iterable от $start до, но не в том числе, $end .
take(int $ n , ?iterable $ collection ): iterableБерет n первых элементов от итерационных
takeRight(int $ n , ?iterable $ collection ): arrayВозвращает кусок итерабильных с n элементами, взятыми с конца.
uniq(?iterable $ collection ): array Удаляет дубликаты, используя ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array Как uniq но примените $iteratee fist
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 возвращает Falsey для.
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 возвращает ключ кэша карты, 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 Вызывает Iterate $n Times, возвращая массив результатов каждого вызова.
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) , если она фальсификация или $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Суммирует элементы в итерационных
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float Как sum , но $iteratee вызывается для каждого элемента в итерационном, чтобы генерировать значение, которое должно быть суммировано.
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 возвращает falsey для.
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Возвращает $ record [$ 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Возможно/опция Monad (контейнер), который может содержать или не содержать не ненулевое значение. Есть методы:
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Возвращает размер исчисляемого количества параметров функции, длина строки или количество свойств объекта
T (... $ args ): bool Всегда возвращается true