Skip to main content
  1. All Posts/

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.