Forget Haystack vs Needle order, the object IS the Haystack. Haystack is a library that allows for pipelining and immutable structures.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src
tests
.editorconfig
.gitattributes
.gitignore
.scrutinizer.yml
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE.md
README.md
composer.json
composer.lock
phpunit.xml.dist

README.md

Build Status Coverage Status Quality Score SensioLabs Insight 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.