ilya / belt
A handful of tools for PHP developers.
Installs: 20 410
Dependents: 2
Suggesters: 0
Security: 0
Stars: 711
Watchers: 40
Forks: 55
Open Issues: 2
pkg:composer/ilya/belt
Requires
- php: >=5.4.0
Requires (Dev)
- phpspec/phpspec: ~2
This package is not auto-updated.
Last update: 2025-10-25 20:52:17 UTC
README
A handful of tools for PHP developers.
Version 2.0.0 is out now. Clear documentation, improved tests and code quality.
Installation
In case you want to try it out, run:
php composer.phar require "ilya/belt:~2"
That will add Belt to your project as a Composer dependency.
Example
A little taste of Belt:
use Belt\Belt; Belt::max([1, 2, 3]) // => 3 Belt::flatten([1, [2, [3]]]) // => [1, 2, 3] Belt::last([1, 2, 3], 2) // => [2, 3]
What It Offers
- 60+ useful functions that you can use in your projects.
- Belt is fully tested.
- The source code is clean and documented.
Here is what is available to you:
- boolean isDate(mixed $value)
- boolean isNumber(mixed $value)
- boolean isString(mixed $value)
- boolean isFunction(mixed $value)
- boolean isEmpty(mixed $value)
- boolean isEqual(mixed $left, mixed $right)
- boolean isBoolean(mixed $value)
- boolean isObject(mixed $value)
- boolean isArray(mixed $value)
- boolean isTraversable(mixed $value)
- boolean isNull(mixed $value)
- boolean has(mixed $object, string $key)
- array keys(mixed $object)
- array values(mixed $object)
- array methods(mixed $object)
- mixed copy(mixed $value)
- mixed extend(mixed $source, mixed $destination)
- mixed apply(mixed $object, Closure $closure)
- mixed defaults(mixed $object, array|mixed $defaults)
- string escape(string $string)
- string id(string $prefix = '')
- mixed with(mixed $value)
- void times(integer $number, Closure $closure)
- mixed cache(Closure $closure)
- mixed wrap(Closure $closure, Closure $wrapper)
- mixed compose(array $closures, array $arguments = array())
- void once(Closure $closure)
- mixed after(integer $number, Closure $closure)
- mixed|array first(array $elements, integer $amount = 1)
- array initial(array $elements, integer $amount = 1)
- array rest(array $elements, integer $index = 1)
- mixed|array last(array $elements, integer $amount = 1)
- array pack(array $elements)
- array flatten(array $elements)
- array range(integer $to, integer $from = 0, integer $step = 1)
- array difference(array $one, array $another)
- array unique(array $elements, Closure $iterator = null)
- array without(array $elements, array $ignore)
- array zip(array $one, array $another)
- integer indexOf(array $elements, mixed $element)
- array intersection(array $one, array $another)
- array union(array $one, array $another)
- void each(array $collection, Closure $iterator)
- array map(array $collection, Closure $iterator)
- array toArray(mixed $value)
- integer|null size(array|Countable $value)
- array shuffle(array $collection)
- boolean any(array $collection, Closure $iterator)
- boolean all(array $collection, Closure $iterator)
- array reject(array $collection, Closure $iterator)
- array pluck(array $collection, string $key)
- boolean contains(array $collection, mixed $value)
- array invoke(array $collection, string $function)
- mixed reduce(array $collection, Closure $iterator, mixed $initial = 0)
- array sortBy(array $collection, Closure $iterator)
- array groupBy(array $collection, Closure $iterator)
- mixed max(array $collection)
- mixed min(array $collection)
Development
Plans
- Add PHP 5.6support - leverage variadic functions.
Features
- Collections [done]
- each [done]
- map [done]
- reduce [done]
- max [done]
- min [done]
- size [node]
- toArray [done]
- groupBy [done]
- sortBy [done]
- shuffle [done]
- all [done]
- any [done]
- pluck [done]
- contains [done]
- invoke [done]
- reject [done]
 
- Arrays [done]
- first [done]
- initial [done]
- rest [done]
- last [done]
- pack [done]
- flatten [done]
- without [done]
- unique [done]
- union [done]
- difference [done]
- zip [done]
- intersection [done]
- range [done]
- indexOf [done]
 
- Functions [done]
- cache [done]
- once [done]
- wrap [done]
- after [done]
- compose [done]
 
- Objects [done]
- keys [done]
- values [done]
- copy [done]
- extend [done]
- defaults [done]
- methods [done]
- apply [done]
- has [done]
- isEqual [done]
- isEmpty [done]
- isObject [done]
- isArray [done]
- isTraversable [done]
- isFunction [done]
- isString [done]
- isNumber [done]
- isBoolean [done]
- isDate [done]
- isNull [done]
 
- Utilities [done]
- with [done]
- times [done]
- id [done]
- escape [done]
 
License
Belt is licensed under the MIT license.