Functional primitives for PHP

Fund package maintenance!

Installs: 5 927 793

Dependents: 68

Suggesters: 3

Security: 0

Stars: 1 971

Watchers: 80

Forks: 199

Open Issues: 18

1.17.0 2021-03-07 00:25 UTC



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, then 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


Run the following command in your project root:

composer require lstrojny/functional-php


Read the docs


  1. Fork and git clone the project
  2. Install dependencies via composer install
  3. Run the tests via composer run tests
  4. Write code and create a PR

Mailing lists

Thank you