liyuze / laravel-method-chaining-macros
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/liyuze/laravel-method-chaining-macros
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0
- liyuze/method-chaining-proxy: ^1.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
此扩展包是针对对 liyuze/method-chaining-proxy 在 laravel 框架补充,通过 marcoable 特性的类快速创建方法链式调用代理器。
安装
你可以通过 composer 进行安装:
composer require liyuze/laravel-method-chaining-macros
Macros
用例
chaining
代理器有三种工作模式:
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 文档
ifChaining
$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
unlessChaining
$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 扩展包样板
本扩展包使用 Laravel Package Boilerplate 工具生成。