marshmallow/validation 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

marshmallow/validation

Composer 安装命令:

composer require marshmallow/validation

包简介

Additional validation rules for the Laravel framework

README 文档

README

marshmallow-validation is an extension library for Laravel's own validation system. The package adds rules to validate data like IBAN, BIC, ISBN, creditcard numbers and more.

Latest Version Monthly Downloads

Important

This package was originally forked from intervention/validation. Since we were making many opinionated changes and the owner archived the repository, we decided to continue development in our own version rather than submitting pull requests that might not benefit all users of the original package. You're welcome to use this package, we're actively maintaining it. If you encounter any issues, please don't hesitate to reach out.

Installation

You can install this package quick and easy with Composer.

Require the package via Composer:

$ composer require marshmallow/validation

Laravel integration

The Validation library is built to work with the Laravel Framework (>=10). It comes with a service provider, which will be discovered automatically and registers the validation rules into your installation. The package provides 30 additional validation rules including multi language error messages, which can be used like Laravel's own validation rules.

use Illuminate\Support\Facades\Validator;
use Marshmallow\Validation\Rules\Creditcard;
use Marshmallow\Validation\Rules\Hexadecimalcolor;
use Marshmallow\Validation\Rules\Username;

$validator = Validator::make($request->all(), [
    'color' => new Hexadecimalcolor([3, 6]), // pass rule as object
    'number' => ['required', 'creditcard'], // or pass rule as string
    'name' => 'required|min:3|max:20|username', // combining rules works as well
]);

Changing the error messages:

Add the corresponding key to /resources/lang/<language>/validation.php like this:

// example
'iban' => 'Please enter IBAN number!',

Or add your custom messages directly to the validator like described in the docs.

Available Rules

The following validation rules are available with this package.

Base64 encoded string

The field under validation must be Base64 encoded.

public Marshmallow\Validation\Rules\Base64::__construct()

Business Identifier Code (BIC)

Checks for a valid Business Identifier Code (BIC).

public Marshmallow\Validation\Rules\Bic::__construct()

Camel case string

The field under validation must be a formated in Camel case.

public Marshmallow\Validation\Rules\Camelcase::__construct()

Classless Inter-Domain Routing (CIDR)

Check if the value is a Classless Inter-Domain Routing notation (CIDR).

public Marshmallow\Validation\Rules\Cidr::__construct()

Creditcard Number

The field under validation must be a valid creditcard number.

public Marshmallow\Validation\Rules\Creditcard::__construct()

Data URI scheme

The field under validation must be a valid Data URI.

public Marshmallow\Validation\Rules\DataUri::__construct(?array $media_types = null)

Domain name

The field under validation must be a well formed domainname.

public Marshmallow\Validation\Rules\Domainname::__construct()

Dutch phone number

The field under validation must be a valid Dutch phone number, optionally including a +31, 0031 or 0 country prefix.

public Marshmallow\Validation\Rules\Dutchphonenumber::__construct()

European Article Number (EAN)

Checks for a valid European Article Number.

public Marshmallow\Validation\Rules\Ean::__construct(array $lengths = [8, 13])

Parameters

length

Optional integer length (8 or 13) to check only for EAN-8 or EAN-13.

Global Trade Item Number (GTIN)

Checks for a valid Global Trade Item Number.

public Marshmallow\Validation\Rules\Gtin::__construct(array $lengths = [8, 12, 13, 14])

Parameters

length

Optional array of allowed lengths to check only for certain types (GTIN-8, GTIN-12, GTIN-13 or GTIN-14).

Hexadecimal color code

The field under validation must be a valid hexadecimal color code.

public Marshmallow\Validation\Rules\Hexadecimalcolor::__construct(array $lengths = [3, 4, 6, 8])

Parameters

length

Optional length as integer to check only for shorthand (3 or 4 characters) or full hexadecimal (6 or 8 characters) form.

Text without HTML

The field under validation must be free of any html code.

public Marshmallow\Validation\Rules\HtmlClean::__construct()

International Bank Account Number (IBAN)

Checks for a valid International Bank Account Number (IBAN).

public Marshmallow\Validation\Rules\Iban::__construct()

International Mobile Equipment Identity (IMEI)

The field under validation must be a International Mobile Equipment Identity (IMEI).

public Marshmallow\Validation\Rules\Imei::__construct()

International Standard Book Number (ISBN)

The field under validation must be a valid International Standard Book Number (ISBN).

public Marshmallow\Validation\Rules\Isbn::__construct(array $lengths = [10, 13])

Parameters

length

Optional length parameter as integer to check only for ISBN-10 or ISBN-13.

International Securities Identification Number (ISIN)

Checks for a valid International Securities Identification Number (ISIN).

public Marshmallow\Validation\Rules\Isin::__construct()

International Standard Serial Number (ISSN)

Checks for a valid International Standard Serial Number (ISSN).

public Marshmallow\Validation\Rules\Issn::__construct()

JSON Web Token (JWT)

The given value must be a in format of a JSON Web Token.

public Marshmallow\Validation\Rules\Jwt::__construct()

Kebab case string

The given value must be formated in Kebab case.

public Marshmallow\Validation\Rules\Kebabcase::__construct()

Lower case string

The given value must be all lower case letters.

public Marshmallow\Validation\Rules\Lowercase::__construct()

Luhn algorithm

The given value must verify against its included Luhn algorithm check digit.

public Marshmallow\Validation\Rules\Luhn::__construct()

Media (MIME) type

Checks for a valid Mime Type (Media type).

public Marshmallow\Validation\Rules\MimeType::__construct()

Postal Code

The field under validation must be a postal code of the given country.

public Marshmallow\Validation\Rules\Postalcode::__construct(array $countrycodes = [])

Parameters

countrycode

Country code in ISO-639-1 format.

Postal Code (static instantiation)

public static Marshmallow\Validation\Rules\Postalcode::countrycode(array $countrycodes): Postalcode

Parameters

countrycode

Country code in ISO-639-1 format.

Postal Code (static instantiation with reference)

public static Marshmallow\Validation\Rules\Postalcode::reference(string $reference): Postalcode

Parameters

reference

Reference key to get ISO-639-1 country code from other data in validator.

Semantic Version Number

The field under validation must be a valid version numbers using Semantic Versioning.

public Marshmallow\Validation\Rules\SemVer::__construct()

SEO-friendly short text (Slug)

The field under validation must be a user- and SEO-friendly short text.

public Marshmallow\Validation\Rules\Slug::__construct()

Snake case string

The field under validation must formated as Snake case text.

public Marshmallow\Validation\Rules\Snakecase::__construct()

Title case string

The field under validation must formated in Title case.

public Marshmallow\Validation\Rules\Titlecase::__construct()

Universally Unique Lexicographically Sortable Identifier (ULID)

The field under validation must be a valid Universally Unique Lexicographically Sortable Identifier.

public Marshmallow\Validation\Rules\Ulid::__construct()

Upper case string

The field under validation must be all upper case.

public Marshmallow\Validation\Rules\Uppercase::__construct()

Username

The field under validation must be a valid username. Consisting of alpha-numeric characters, underscores, minus and starting with a alphabetic character. Multiple underscore and minus chars are not allowed. Underscore and minus chars are not allowed at the beginning or end.

public Marshmallow\Validation\Rules\Username::__construct()

Development & Testing

With this package comes a Docker image to build a test suite container. To build this container you have to have Docker installed on your system. You can run all tests with this command.

$ docker-compose run --rm --build tests

License

Marshmallow Validation is licensed under the MIT License.

marshmallow/validation 适用场景与选型建议

marshmallow/validation 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.44k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 02 月 25 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「validator」 「validation」 「base64」 「laravel」 「IBAN」 「BIC」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 marshmallow/validation 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 marshmallow/validation 我们能提供哪些服务?
定制开发 / 二次开发

基于 marshmallow/validation 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 25
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-02-25