cyvelnet/laravel5-inputpipe

为 Laravel 5 格式化用户输入的简单方法

v1.0.0 2015-10-25 05:59 UTC

This package is auto-updated.

Last update: 2024-09-08 21:58:52 UTC


README

Build Status Latest Stable Version Latest Unstable Version License

我们都遇到过用户提交表单时的问题,所有这些表单数据都是一团糟,有时我们甚至想要修剪输入、将它们转换为特定类型并重新格式化,实际上这并不是世界上最难的事情,但这些小任务确实会让我们的代码看起来很长,而 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 类一样的类来存储规则?