Skip to content

Primitives for functional programming in PHP

Notifications You must be signed in to change notification settings

yarec/functional-php

 
 

Repository files navigation

Functional PHP: Functional primitives for PHP

Gitter Build Status Dependency Status Average time to resolve an issue Percentage of issues still open Scrutinizer Code Quality

NOTE: functional-php used to come with a C extension that implemented most of the functions natively. As the performance differences weren’t that huge compared to the maintenance cost it has been removed.

A set of functional primitives for PHP, heavily inspired by Scala’s traversable collection, Dojo’s array functions and Underscore.js

  • Works with arrays and everything implementing interface Traversable
  • Consistent interface: for functions taking collections and callbacks, first parameter is always the collection, than the callback. Callbacks are always passed $value, $index, $collection. Strict comparison is the default but can be changed
  • Calls 5.3 closures as well as usual callbacks
  • All functions reside in namespace Functional to not raise conflicts with any other extension or library

Functional Comic

Installation

Using composer

Put the require statement for functional-php in your composer.json file and run php composer.phar install:

{
    "require": {
        "lstrojny/functional-php": "~1.2"
    }
}

Manually

Checkout functional-php and include the _import.php

<?php
include 'path/to/functional-php/src/Functional/_import.php';

Docs

Read the docs

Running the test suite

To run the test suite use vendor/bin/phpunit tests/

Mailing lists

Thank you

About

Primitives for functional programming in PHP

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%