cyvelnet / laravel5-inputpipe
为 Laravel 5 格式化用户输入的简单方法
Requires
- php: >=5.5.9
- illuminate/support: 5.0.*|5.1.*
Requires (Dev)
- mockery/mockery: 0.9.4
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-08 21:58:52 UTC
README
我们都遇到过用户提交表单时的问题,所有这些表单数据都是一团糟,有时我们甚至想要修剪输入、将它们转换为特定类型并重新格式化,实际上这并不是世界上最难的事情,但这些小任务确实会让我们的代码看起来很长,而 InputPipes 正好派上用场。
$inputs = Pipe::make(Input::all(), ['email' => 'trim|lower', 'name' => 'trim|ucword'])->get();
这一行代码简单化了我们对输入格式化所花费的时间。
使用以下命令通过 composer 安装此包
composer require cyvelnet/laravel5-inputpipe
将 ServiceProvider 添加到 config/app.php 中的 providers 数组中
Cyvelnet\InputPipe\InputPipeServiceProvider::class
并注册 Facade
Cyvelnet\InputPipe\Facades\PipeFacade::class
可用的管道
- trim
- snake (snake case)
- camel (camel case)
- lower (lower case)
- upper (upper case)
- ucword
- slug
- ... 更多功能即将推出或通过 PR 添加通用管道
扩展功能
有时我们想要添加一些目前尚未提供或不是通用范围的逻辑,不用担心,你可以扩展它以匹配你的使用需求
Pipe::extend('sample', function ($data, $parameters) { return $data; });
上述场景完全正常,如果你只需要添加少量额外的功能。当扩展变得拥挤时,将它们组织成类会更好。
class CustomPipes extends \Cyvelnet\InputPipe\Pipes { public function pipeFoo ($data, $parameters) { // process your logic; } public function pipeBar($data, $parameters) { // process another logic; } }
然后使用以下方式注册你的类
Pipe::extra(function($data, $pipes) { return new CustomPipes($data, $pipes); });
最后触发你的管道
$inputs = Pipe::make(Input::only('foo', 'bar'), ['foo', 'bar'])->get();
待办事项
- 是否有像 Laravel5 FormRequest 类一样的类来存储规则?