{"id":13793108,"url":"https://github.com/siriusphp/validation","last_synced_at":"2025-04-13T02:09:10.345Z","repository":{"id":10084906,"uuid":"12142979","full_name":"siriusphp/validation","owner":"siriusphp","description":"Framework agnostic validation library for PHP","archived":false,"fork":false,"pushed_at":"2023-11-19T15:41:53.000Z","size":617,"stargazers_count":160,"open_issues_count":0,"forks_count":29,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-13T02:08:35.191Z","etag":null,"topics":["forms","input","php","sanitization","security","validation"],"latest_commit_sha":null,"homepage":"http://www.sirius.ro/php/sirius/validation/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siriusphp.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2013-08-15T20:23:10.000Z","updated_at":"2025-04-05T09:20:20.000Z","dependencies_parsed_at":"2023-12-12T07:07:02.890Z","dependency_job_id":"09ba9dd0-5847-4dad-81c0-037cdc8cebbe","html_url":"https://github.com/siriusphp/validation","commit_stats":{"total_commits":260,"total_committers":24,"mean_commits":"10.833333333333334","dds":0.5269230769230769,"last_synced_commit":"4704128b2b8e6fc781025e1594b337202478a197"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siriusphp%2Fvalidation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siriusphp%2Fvalidation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siriusphp%2Fvalidation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siriusphp%2Fvalidation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siriusphp","download_url":"https://codeload.github.com/siriusphp/validation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654091,"owners_count":21140236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["forms","input","php","sanitization","security","validation"],"created_at":"2024-08-03T22:01:22.099Z","updated_at":"2025-04-13T02:09:10.294Z","avatar_url":"https://github.com/siriusphp.png","language":"PHP","funding_links":[],"categories":["类库"],"sub_categories":["表单校验"],"readme":"# Sirius Validation\n\n[![Source Code](http://img.shields.io/badge/source-siriusphp/validation-blue.svg)](https://github.com/siriusphp/validation)\n[![Latest Version](https://img.shields.io/packagist/v/siriusphp/validation.svg)](https://github.com/siriusphp/validation/releases)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/siriusphp/validation/blob/master/LICENSE)\n[![Build Status](https://github.com/siriusphp/validation/workflows/CI/badge.svg)](https://github.com/siriusphp/validation/actions)\n[![Coverage Status](https://scrutinizer-ci.com/g/siriusphp/validation/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/siriusphp/validation/code-structure)\n[![Quality Score](https://scrutinizer-ci.com/g/siriusphp/validation/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/siriusphp/validation)\n[![Total Downloads](https://img.shields.io/packagist/dt/siriusphp/validation.svg)](https://packagist.org/packages/siriusphp/validation)\n\nSirius Validation is a library for data validation. It offers:\n\n1. [validator object](docs/validator.md)\n2. [45 build-in validation rules](docs/validation_rules.md). There are validators for strings, array, numbers, emails, URLs, files and uploads\n3. [validation helper](docs/helper.md) to simplify the validation of single values\n\nOut-of-the-box, the library can handle `array`s, `ArrayObject`s and objects that have implemented the `toArray` method.\nIn order to validate other data containers you must create a [`DataWrapper`](https://github.com/siriusphp/validation/blob/master/src/Validation/DataWrapper/WrapperInterface.php) so that the validator be able to extract data from your object.\n\n## Elevator pitch\n\n```php\n$validator = new \\Sirius\\Validation\\Validator;\n\n// add a validation rule\n$validator-\u003eadd('title', 'required');\n\n// add a rule that has a list of options\n$validator-\u003eadd('title', 'length', array('min' =\u003e 10, 'max' =\u003e 100));\n// or use JSON\n$validator-\u003eadd('title', 'length', '{\"min\": 10, \"max\": 100}');\n// or a URL query string\n$validator-\u003eadd('title', 'length', 'min=10\u0026max=100');\n// or, if you know that the validator can CORECTLY parse (ie: understand) the options string\n$validator-\u003eadd('title', 'length', '10,100');\n\n// add a rule with a custom error message\n$validator-\u003eadd('title', 'maxlength', 'max=100', 'Article title must have less than {max} characters');\n\n// add a rule with a custom message and a label (very handy with forms)\n$validator-\u003eadd('title:Title', 'maxlength', 'max=100', '{label} must have less than {max} characters');\n\n// add multiple rules at once (separate using [space][pipe][space])\n$validator-\u003eadd('title:Title', 'required | maxlength(255) | minlength(min=10)');\n\n// add all your rules at once\n$validator-\u003eadd([\n        'title:Title' =\u003e 'required | maxlength(100)',\n        'content:Content' =\u003e 'required',\n        'source:Source' =\u003e 'website'\n    ], [\n        'content.required' =\u003e 'The content field should have a velue'\n    ]);\n\n// add nested rules\n$validator-\u003eadd('recipients[*]:Recipients', 'email'); //all recipients must be valid email addresses\n$validator-\u003eadd('shipping_address[city]:City', 'MyApp\\Validator\\City'); // uses a custom validator to validate the shipping city\n\n```\n\n## Links\n\n- [documentation](http://sirius.ro/php/sirius/validation/)\n- [changelog](CHANGELOG.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiriusphp%2Fvalidation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiriusphp%2Fvalidation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiriusphp%2Fvalidation/lists"}