基于 Ramda.js 的 PHP 函数式编程辅助库

v1.0.40 2023-07-27 11:31 UTC

README

基于 Ramda.js 的 PHP 函数式编程辅助库

据我所知,这是功能最完整的 Ramda.js PHP 端移植,包含超过 350 个函数。还包含了来自 Ramda AdjunctRamda Extension 的许多函数。

此外,尽可能地对一些函数进行了增强,例如 filtermap 可以处理字符串、对象以及常规数组。

需要 PHP 5.6 或更高版本。

使用示例

use ramuda\R;

$users = [
   ['id'=>'45', 'fName'=>'Jane', 'lName'=>'Doe'],
   ['id'=>'22', 'fName'=>'John', 'lName'=>'Doe'],
   ['id'=>'99', 'fName'=>'John', 'lName'=>'Smith']
];

$listToSelect = R::pipe(
   R::filter(R::propEq('lName', 'Doe')),
   R::sortBy(R::prop('id')),
   R::map(function($x){
      return "<option value='{$x['id']}'>{$x['fName']} {$x['lName']}</option>";
   }),
   R::join(''),
   R::wrapWith(['<select>', '</select>'])
);

echo $listToSelect($users);

生成以下字符串

<select>
    <option value="22">John Doe</option>
    <option value="45">Jane Doe</option>
</select>