使用 Transformer 包在 PHP 中清理和格式化数据
发布于 作者 Paul Redmond
Transformer 是一个 PHP 包,用于使用 Laravel 的验证组件来清理和格式化数据。该包使用熟悉的 Laravel 验证类似语法,使用可调用函数、类等来转换数据
use Closure; // example available functions at runtime:function to_carbon($value){ return new Carbon\Carbon($value);} function only_numbers($value){ return preg_replace("/[^0-9]/",'',$value);} $input = [ 'first_name' => ' jim ', 'last_name' => ' thompson', 'phone_number' => '123-456-7890', 'date_of_birth' => "1991-05-01",]; (new DataTransformer($input, [ 'first_name' => 'trim|ucfirst', 'last_name' => 'trim|ucfirst', 'phone_number' => 'only_numbers', 'date_of_birth' => 'to_carbon|->format:m/d/y',]))->transform(); // Returns:// [// "first_name" => "Jim",// "last_name" => "Thompson",// "phone_number" => "1234567890",// "date_of_birth" => "05/01/91",// ]
熟悉 Laravel 验证 API 的人会注意到基于字符串的转换器规则。此外,如代码片段所示,该包具有“可链接”语法 (to_carbon|->format:m/d/y
),可以在数据片段上链接其他调用。
您还可以使用闭包或实现提供的 Transformable
接口的类来转换数据。此外,该包支持使用点表示法嵌套数组数据、通配符输入(在与通配符模式匹配的键上应用函数)等等。
您可以在 GitHub 上了解更多关于该包的信息,获取完整的安装说明,并查看 源代码。