stamina/chequer-php

快速且简单的标量/对象/数组检查/验证类

0.2.1 2013-08-22 09:17 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:11:43 UTC


README

一种全新的语言,用于以合理的方式检查事物
匹配标量、数组、对象和挑剔的猫咪,以符合您选择的查询!

请访问 chequer.stamina.pl 获取更多信息!

等等!还有更多!

包的一部分是 DynamicObject 类,它允许您在 PHP 中 动态创建类即时修改 对象的 方法扩展对象 以及更多!查看这里!它是为了使类型转换变得简单,但它本身也非常出色!

安装

使用 Composerstamina/chequer-php 进行安装。

所需的最小 PHP 版本是 5.3。因为 5.4 引入了简写数组语法 - 此版本建议使用,并在本文档中使用。

php composer.phar require stamina/chequer-php

Build Status

使用方法和示例

使用方法

有几个使用模式可供选择。

简单检查

对于简单检查,请使用静态函数 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 都是 scalararray - 它们可以轻松地存储在 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

githalytics.com alpha