ericpoe/haystack

Forget Haystack vs Needle order, the object IS the Haystack. Haystack is a library that allows for pipelining and immutable structures.

Maintainers

👁 ericpoe

Package info

github.com/ericpoe/haystack

pkg:composer/ericpoe/haystack

Statistics

Installs: 29 727

Dependents: 1

Suggesters: 0

Stars: 37

Open Issues: 1

v2.1.3 2019-01-29 17:49 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 92c9ec4698fd013c1465efa6d49bc844a5869be0


README

👁 GitHub Workflow Status for Code Testing (master branch)
👁 GitHub Workflow Status for Code Analysis (master branch)
👁 Software License
👁 Packagist Version

Haystack

Forget Haystack vs Needle order, the object IS the Haystack. Haystack is a library that allows for pipelining, immutable structures, and UTF-8 strings.

Install

Haystack is installable as a Composer package:

$ composer require ericpoe/haystack

Running tests

$ git clone ...
$ composer install
$ vendor/bin/phpunit

Background

Trying to remember commonly-used PHP functions for strings and arrays in PHP is hard. Are array functions haystack-needle and string functions needle-haystack, or vice versa? Quick, without looking at documentation or using a decent IDE, which is correct: in_array($needle, $haystack) or in_array($haystack, needle)?

Also, even though many of the same kinds of functions are run against arrays and strings, the function names are wildly different. strstr and in_array do similar things, yet have different names and are called in different manners.

Goal

This project will attempt to match as many string and array verbs as possible. For example, $foo->contains("elvis") should determine if the string "elvis" is contained in the $foo object, it shouldn't matter if $foo is a string or an array. Ditto $foo->map($callable) and $foo->filter($callable).

How do I?

Check out the manual for all the things you can do with the Haystack library.