stamina / chequer-php
快速且简单的标量/对象/数组检查/验证类
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-28 15:11:43 UTC
README
一种全新的语言,用于以合理的方式检查事物
匹配标量、数组、对象和挑剔的猫咪,以符合您选择的查询!
请访问 chequer.stamina.pl 获取更多信息!
等等!还有更多!
包的一部分是 DynamicObject
类,它允许您在 PHP 中 动态创建类,即时修改 对象的 方法,扩展对象 以及更多!查看这里!它是为了使类型转换变得简单,但它本身也非常出色!
安装
使用 Composer 包 stamina/chequer-php
进行安装。
所需的最小 PHP 版本是 5.3。因为 5.4 引入了简写数组语法 - 此版本建议使用,并在本文档中使用。
php composer.phar require stamina/chequer-php
使用方法和示例
使用方法
有几个使用模式可供选择。
简单检查
对于简单检查,请使用静态函数 checkValue()
if (Cheque::checkValue($value, $query)) {}
重用查询
当您想重用查询或将它作为回调传递到某个地方时,请创建对象并调用 check
方法,或直接调用对象。
// build the query object $chequer = new Chequer($query); // use it witch check() if ($chequer->check($value)) {} // or invoke it as a function if ($chequer($value)) {} // or pass it as a callback array_filter($array, $chequer);
全局配置
您可以将所有查询存储在配置文件中,并在需要时使用它们。这样,您可以将验证/过滤逻辑与代码分离,就像您处理模板一样!
// load the rules from the JSON file Chequer::addGlobalRules(json_decode(file_get_contents('queries.json'), JSON_OBJECT_AS_ARRAY)); // reuse them if (Chequer::checkValue($value, ['$rule' => 'some_defined_rule'])) {}
由于每个 query
都是 scalar
或 array
- 它们可以轻松地存储在 JSON、YAML、MongoDB 中 - 您的名字。
依赖注入
如果您更喜欢 DI - 请放心。您可以直接向 Chequer
对象添加规则,这意味着您可以创建一个工厂,或传递 Chequer
对象并仍然用预定义的规则填充它。
将上述示例重写为 Silex 工厂
// load the queries once $app['chequer.rules'] = $app->share(function() { return json_decode(file_get_contents('queries.json'), JSON_OBJECT_AS_ARRAY); }); // always have a fresh chequer on hand $app['chequer'] = function() use ($app) { return (new Chequer())->addRules($app['chequer.rules']); }; // reuse if ($app['chequer']->query($value, ['$rule' => 'some_defined_rule'])) {}
请注意,整个想法非常新颖。我于 1 月 29 日想出了这个概念,并在同一天创建了库。
这意味着 - 它 将会 变化!
©2013 Rafal Lindemann