Download the PHP package rrzu/validation without Composer

On this page you can find all versions of the php package rrzu/validation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package validation

Validation

用于验证数据的PHP独立库。适用于任何框架

Features

Requirements

Quick Start

Installation

Usage

验证器层 验证器目录结构

创建验证器类 创建一个独立的数据验证器类,用于处理相应场景下的数据验证逻辑。命名规则为***Validator,并继承自AbstractValidator。在该验证器类中,按照命名规则规定命名验证规则方法,例如,对于名为DemoValidator的验证器类,应包括rulesWhenCreate、rulesWhenUpdate...等方法。

语言切换 在组件中,默认采用中文作为消息提示的语言。然而,如果需要切换为英文错误提示,可以通过将语言设置为"en"来实现。 例如,英文提示可能类似于:"The 用户名 is required",而中文提示则为:"用户名是必填的"。

全局错误消息、属性名称 为了提高代码的复用性和可维护性,建议在验证器的验证方法中共用一个messages和attributes变量。这样做可以使得验证方法更通用、易维护。 将:attribute理解为变量,并将其替换为属性或属性别名,使得验证方法更通用、易维护。 如:当验证username参数时,那么验证错误提示:该用户名必填。

局部消息、属性 为了增强验证器的扩展能力,考虑到业务可能存在相同字段需要不同提示的情况,建议引入局部消息和属性的概念。这样可以按照优先级进行提示选择,优先使用局部消息和属性,其次是全局设定,最后是组件默认。 验证消息和属性的等级顺序为:局部 > 全局 > 组件默认。如果定义了局部消息或属性,则优先采用局部定义。 如:当验证username参数时,那么验证错误提示:该商家名称参数缺少。

在控制器中使用验证器 在控制器中调用验证器类进行数据验证: 使用业务验证器DemoValidator进行验证时,可以通过调用validate方法,传入参数$param进行数据验证。对于create操作,底层调用验证器的rulesWhenCreate方法进行验证。

强制报错 验证器DemoValidator默认采用强制报错机制,框架会全局捕获这些错误并进行处理,返回符合API报错格式的错误信息。这种设计有助于提高整体规范性,降低维护成本,减少开发人员的工作量,避免重复编写相似的错误处理代码。 全局报错目前尚未处理

非强制报错 除了默认的强制报错机制,我们还考虑了组件兼容非强制报错的情况。我们对validate方法进行了优化,允许传入参数false,这样开发人员可以通过调用firstErrorMessage方法获取到验证错误信息中的第一条报错信息,实现了更灵活的错误处理方式。

获取已验证数据、有效数据或无效数据

验证器自定义消息

自定义验证消息

为了提高验证器的灵活性和可定制性,我们引入了两个重要方法。首先是attributes方法,通过该方法,我们可以定义属性别名,将属性名映射为更具有业务意义的别名。其次是messages方法,允许我们自定义字段验证消息,以替换组件默认的消息。在自定义消息中,我们可以使用:attribute占位符,该占位符会被替换为属性别名,以使错误信息更具有可读性和业务意义。这样的设计能够使验证器更符合特定项目需求,同时提高代码的可维护性和易用性。

特定属性规则的自定义消息

有时,您可能只想为特定字段指定自定义错误信息。您可以属性名称后使用:标记来实现。例如:

数组的属性值判断

验证表单的输入为数组的字段也不再难了。 你可以使用.方法来验证数组中的属性。例如

规则

required

此验证下的字段必须存在且不能为“空”。

e.g

Value Valid
'something' true
'0' true
0 true
[0] true
[null] true
null false
[] false
'' false

required_if

required_if:值_1,值_2,...

如果字段等于任何值,则此规则下的字段必须存在且不为空。

required_unless

required_unless:值_1,值_2,...

如果字段的值不等于任何 value 值,则验证的字段必须存在且不为空。这也意味着,除非字段等于任何 value 值,否则必须在请求数据中包含字段。如果 value 的值为 null (required_unless:name,null),则必须验证该字段,除非比较字段是 null 或比较字段不存在于请求数据中。

required_with

required_with:foo,bar,…

仅当任何其他指定字段存在且不为空时,才需要验证字段存在且不为空。

required_with_all

required_with_all:foo,bar,…

仅当所有其他指定字段存在且不为空时,才需要验证字段存在且不为空。

required_without

required_without:foo,bar,…

验证的字段仅在任一其他指定字段为空或不存在时,必须存在且不为空。

required_without_all

required_without_all:foo,bar,…

验证的字段仅在所有其他指定字段为空或不存在时,必须存在且不为空。

uploaded_file

uploaded_file:min_size,max_size,extension_a,extension_b,...

该规则将验证来自$_FILES的数据。符合此规则的字段必须遵循以下规则才能被视为有效:

$_FILES['key']['error'] 必须是 UPLOAD_ERR_OK 或 UPLOAD_ERR_NO_FILE。对于UPLOAD_ERR_NO_FILE,您可以使用 required 规则进行验证。 如果指定了最小尺寸,上传的文件尺寸必须不小于最小尺寸。 如果指定了最大尺寸,上传的文件尺寸必须不大于最大尺寸。 如果给定文件类型,MIME 类型必须是给定类型之一。 以下是一些示例定义和解释:

uploaded_file: 上传文件是可选的。当它不为空时,它必须为 ERR_UPLOAD_OK。 required|uploaded_file: 上传文件是必需的,必须为 ERR_UPLOAD_OK。 uploaded_file:0,1M: 上传文件尺寸必须介于 0 到 1 MB 之间,但上传文件是可选的。 required|uploaded_file:0,1M,png,jpeg: 上传文件尺寸必须介于 0 到 1MB,MIME 类型必须是 image/jpeg 或 image/png。 另外,如果您想在尺寸和类型验证之间有不同的错误消息,您可以使用 mimes 规则验证文件类型,并使用 min、max 或 between 验证其尺寸。

对于多文件上传,PHP 将为您提供不理想的数组 $_FILES 结构(这里是主题)。因此,我们制定了 uploaded_file 规则,以自动将您的 $_FILES 值解析为良好组织的数组结构。这意味着,您不能仅使用 min、max、between 或 mimes 规则来验证多文件上传。您应该仅将 uploaded_file 放置在其中以解析其值并确保该值是正确的上传文件值。

例如,如果您有如下输入文件:

您可以简单地像这样进行验证:

或者

或者如果您有如下输入文件:

您可以像这样进行验证:

或者

现在当您使用 getValidData() 或 getInvalidData() 时,您将获得良好的数组结构,就像单文件上传一样。

mimes

mimes:foo,bar,…

验证的文件必须具有与列出的扩展名之一对应的 MIME 类型。 MIME 规则的基本用法

尽管您只需要指定扩展名,但该规则实际上通过读取文件内容并猜测其 MIME 类型来验证文件的 MIME 类型。

default 这是一个特殊规则,它不对任何内容进行验证。它只是在您的属性为空或不存在时为其设置默认值。

例如,如果您有如下验证:

验证通过,因为我们为 enabled 和 published 设置了默认值为 1 和 0,这是有效的。然后,我们可以获取有效/默认数据。

email

验证的字段必须符合 e-mail 地址格式。

uppercase

验证字段必须为大写。

lowercase

验证的字段必须是小写的。

json

验证的字段必须是一个有效的 JSON 字符串。

alpha

待验证字段必须是包含在 \p{L} 和 \p{M} 中的 Unicode 字母字符。 为了将此验证规则限制在 ASCII 范围内的字符(a-z 和 A-Z),你可以为验证规则提供 ascii 选项: 'username' => 'alpha:ascii',

numeric

需要验证的字段必须是数字类型。 'games' => 'required|numeric',

alpha_num

被验证的字段必须完全是 Unicode 字母数字字符中的 \p{L}, \p{M} 和 \p{N}。 为了将此验证规则限制在 ASCII 范围内的字符(a-z 和 A-Z),你可以为验证规则提供 ascii 选项: 'username' => 'alpha_num:ascii',

alpha_dash

被验证的字段必须完全是 Unicode 字母数字字符中的 \p{L}、\p{M}、\p{N},以及 ASCII 破折号(-)和 ASCII 下划线(_)。 为了将此验证规则限制在 ASCII 范围内的字符(a-z 和 A-Z),你可以为验证规则提供 ascii 选项: 'username' => 'alpha_dash:ascii',

alpha_spaces

此规则下的字段可能包含字母字符和空格。

in

in:foo,bar,… 验证字段必须包含在给定的值列表中。由于此规则通常要求你 implode 数组,因此可以使用 Rule::in 方法来流畅地构造规则: 'status' => 'in:1,2,10',

not_in

not_in:foo,bar,… 验证的字段不能包含在给定值列表中 'status' => 'not_in:3,5',

min

min:value 验证的字段的值必须大于或等于最小值 value。字符串、数字、数组和文件的处理方式与 size 规则相同。 'status' => 'required|numeric|min:1',

max

max:value 验证的字段的值必须小于或等于最大值 value。字符串、数字、数组和文件的处理方式与 size 规则相同。 'status' => 'required|numeric|max:10',

between

between:min,max 待验证字段值的大小必须介于给定的最小值和最大值(含)之间。字符串、数字、数组和文件的计算方式都使用 size 方法。 'status' => 'required|numeric|between:1,10',

digits

digits:value 验证的整数必须具有确切长度 value 。

digits_between

digits_between:min,max 验证的整数长度必须在给定的 min 和 max 之间。

url

验证字段必须为有效的 URL。

integer

验证的字段必须是一个整数。 'id'=>'nullable|integer|min:1',

boolean

验证的字段必须可以转换为 Boolean 类型。 可接受的输入为 true, false, 1, 0, 「1」, 和 「0」。 'opened' => 'nullable|boolean',

ip

验证的字段必须是一个 IP 地址。

ipv4

验证的字段必须是一个 IPv4 地址。

ipv6

验证的字段必须是一个 IPv6 地址。

extension

extension:扩展名A,扩展名B,... 此规则下的字段必须以列出的扩展名之一对应的扩展名结尾。 这对于验证给定路径或 URL 的文件类型非常有用。对于验证上传的文件类型应使用 mimes 规则。

array

待验证字段必须是有效的 PHP 数组。 当向 array 规则提供附加值时,输入数组中的每个键都必须出现在提供给规则的值列表中。在以下示例中,输入数组中的 admin 键无效,因为它不包含在提供给 array 规则的值列表中:

same

给定的字段必须与验证的字段匹配。此规则下的字段值必须与另一个字段值相同。

regex

regex:pattern 验证的字段必须匹配给定的正则表达式。 在内部,此规则使用 PHP 的 preg_match 函数。指定的模式应遵循 preg_match 所需的相同格式,并且也包括有效的分隔符。例如:

date

验证字段必须是 strtotime PHP 函数可识别的有效日期。

accepted

待验证字段必须是 「yes」 ,「on」 ,1 或 true。这对于验证「服务条款」的接受或类似字段时很有用。

present

需要验证的字段必须存在于输入数据中。

different

验证的字段值必须与字段 field 的值不同。

after

验证中的字段必须是给定日期之后的值。日期将被传递给 strtotime PHP 函数中,以便转换为有效的 DateTime . e.g:

你也可以指定另一个要与日期比较的字段,而不是传递要由 strtotime 处理的日期字符串:

before

待验证字段的值对应的日期必须在给定的日期之前。这个日期将被传递给 PHP 函数 strtotime 以便转化为有效的 DateTime 实例。此外,与 after 规则一致,可以将另外一个待验证的字段作为 date 的值。

callback

您可以使用此规则定义自己的验证规则。无法使用字符串管道注册此规则。要使用此规则,应将闭包放置在规则数组内。 e.g:

您可以通过返回字符串来设置无效消息。例如,上面的示例可以改为:

注意:RRZU\Validation\Rules\Callback 实例绑定到您的闭包中。因此,您可以使用 $this 访问规则属性和方法。

nullable

需要验证的字段可以为 null。


All versions of validation with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0
ext-mbstring Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rrzu/validation contains the following files

Loading the files please wait ....