Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ilya-dev/belt

A handful of tools for PHP developers.
https://github.com/ilya-dev/belt

Last synced: 3 months ago
JSON representation

A handful of tools for PHP developers.

Awesome Lists containing this project

README

        

# Belt

[![Build Status](https://travis-ci.org/ilya-dev/belt.svg?branch=master)](https://travis-ci.org/ilya-dev/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:

```php

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.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.