此扩展包是针对对 liyuze/method-chaining-proxy
在 laravel 框架补充,通过 marcoable 特性的类快速创建方法链式调用代理器。
你可以通过 composer 进行安装:
composer require liyuze/laravel-method-chaining-macros
代理器有三种工作模式:
tap
模式,任何调用都 不会 影响代理的代理值。pipe
模式,任何调用都 会 影响代理的代理值。mixed
模式,只有有返回值,且不null
时 才会 影响代理的代理值。
tapChaining
、 pipeChaining
、 mixedChaining
是快速创建这三种工作模式的代理器,chaining
是 mixedChaining
的别名。
collect([1,2,3])->chaining()->map(fn ($v) => $v * 2)->sum()->popValue(); //12
collect([1,2,3])->pipeChaining()->map(fn ($v) => $v * 2)->sum()->popValue(); //Collection([2,4,6])
更多功能查看 liyuze/method-chaining-proxy
文档
$list = collect([1,2,3]);
$list->ifChaining(true)->map(fn ($v) => $v * 2)->sum()
->elseChaining()->map(fn ($v) => $v * 3)->avg()
->endIfChaining(); //12
$list->ifChaining(false)->map(fn ($v) => $v * 2)->sum()
->elseChaining()->map(fn ($v) => $v * 3)->avg()
->endIfChaining(); //6
$list = collect([1,2,3]);
$list->unlessChaining(true)->map(fn ($v) => $v * 2)->sum()
->elseChaining()->map(fn ($v) => $v * 3)->avg()
->endUnlessChaining(); //6
发布配置文件
php artisan vendor:publish --provider="Liyuze\MethodChainingMacros\MethodChainingMacrosServiceProvider"
删除注释或添加类名来修改 macro 类列表。 通过 rename 项来指定
如果
composer test
点击 CHANGELOG 查看最近修改了哪些内容。
点击 CONTRIBUTING 查看详情
如果您发现任何与安全相关的问题,请发送电子邮件290315384@qq.com而不是使用问题追踪器。
The MIT License (MIT)。点击 License File 查看更多信息。
本扩展包使用 Laravel Package Boilerplate 工具生成。