belt
Tools
PHP
Belt
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 BeltBelt; 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.6
support – 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.