jonpemby / phlash
PHP的Lodash灵感辅助函数
v0.6.0
2018-10-11 19:45 UTC
Requires (Dev)
- phpunit/phpunit: ^7.3
This package is auto-updated.
Last update: 2024-09-07 17:02:25 UTC
README
这是一个为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也能让项目保持活力!感谢您很棒。