jonpemby/phlash

PHP的Lodash灵感辅助函数

v0.6.0 2018-10-11 19:45 UTC

This package is auto-updated.

Last update: 2024-09-07 17:02:25 UTC


README

Phlash

Build Status

这是一个为PHP设计的,灵感来自Lodash的辅助函数库。

与现有代码兼容

Phlash旨在成为您代码的有益补充。Phlash通过PHP的动态__call方法直接遵循您的编码风格。Phlash会自动检查与您调用的函数签名匹配的各种样式。虽然Phlash是用camelCased风格编写的,但它可以与任何风格兼容。

例如

$collection = phlash([1, 2, 3, 4, 5, 6])->dropRight(3);  // [1, 2, 3]
$collection = phlash([1, 2, 3, 4, 5, 6])->drop_right(3); // [1, 2, 3]
$collection = phlash([1, 2, 3, 4, 5, 6])->DropRight(3);  // [1, 2, 3]

都将正常工作!

不可变性

Phlash的每个集合方法都会返回一个新的集合。没有任何集合会被修改。

Phlash利用PHP的写时复制原则,在修改之前将当前值分配给新变量。太棒了!

使用PsySh试试看

$collection = phlash([1, 2, 3, 4, 5, 6]);
// Phlash\Arr {#210}

$another = $collection->map(function ($value) {
    return $value * 2;
});
// Phlash\Arr {#217}

面向对象与函数式支持

Phlash支持各种范式,但最重要的是面向对象和函数式范式。可以轻松地将方法从新对象中链接。如果您不想处理对象而只想调用函数,也可以!

例如

Phlash\Arr::from()->fill(null, 0, 3);
// [null, null, null]

phlash([])->fill(null, 0, 3);
// [null, null, null]

fill([], null, 0, 3);
// [null, null, null]

虽然Phlash底层使用对象,但Phlash会尽可能支持您喜欢的范式。

高阶属性访问器

Phlash支持集合的高阶属性访问器。例如

$array = phlash([
    ['foo' => 1],
    ['foo' => 2],
    ['foo' => 3],
    ['foo' => 4],
    ['foo' => 5],
    ['foo' => 6],
]);

$array->foo;
// [1, 2, 3, 4, 5, 6]

是的,这个方法可以与同一集合的其他方法链式调用。这使得将对象集合映射到属性变得更加容易,而无需编写处理它的映射函数。

了解更多

文档网站即将推出!

感谢

  • Nan Pemberton,感谢您支持我成为程序员的梦想,并始终陪伴在我身边!
  • Taylor Otwell,感谢您编写Laravel并激励我变得很棒
  • 您,感谢您阅读这份文档并关注Phlash。即使您不使用Phlash,编写PHP也能让项目保持活力!感谢您很棒。