Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/ilya-dev/belt
- Owner: ilya-dev
- License: mit
- Created: 2014-04-09T15:54:47.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-06-15T16:42:31.000Z (over 10 years ago)
- Last Synced: 2024-07-19T06:12:25.850Z (4 months ago)
- Language: PHP
- Homepage:
- Size: 963 KB
- Stars: 719
- Watchers: 41
- Forks: 57
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-php-cn - Belt - 工具函数库. (目录 / 数字 Numbers)
- php-awesome - Belt - 工具函数库 (类库 / 未归类)
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.