Giter Club home page Giter Club logo

belt's Introduction

Belt

Build Status

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

belt's People

Contributors

bladeofsteel avatar ilya-dev avatar owlycode avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.