PHPackages                             syswd/validate - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. syswd/validate

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

syswd/validate
==============

PHP simple library for managing of data types.

1.0(9mo ago)06MITPHPPHP ^8.0

Since Aug 18Pushed 9mo agoCompare

[ Source](https://github.com/syswd/php-validate)[ Packagist](https://packagist.org/packages/syswd/validate)[ GitHub Sponsors](https://github.com/Josantonius)[ RSS](/packages/syswd-validate/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

PHP Validate library
====================

[](#php-validate-library)

[![Latest Stable Version](https://camo.githubusercontent.com/3725af6fb23e3ca7ba077ea7ae0c32952a50a55cae2066e2d7871bc073f767ca/68747470733a2f2f706f7365722e707567782e6f72672f6a6f73616e746f6e6975732f76616c69646174652f762f737461626c65)](https://packagist.org/packages/josantonius/validate)[![License](https://camo.githubusercontent.com/b5778beaa8758c2ec0bd197c3c6c440925a1a910bfa62624bf9944ae20696763/68747470733a2f2f706f7365722e707567782e6f72672f6a6f73616e746f6e6975732f76616c69646174652f6c6963656e7365)](LICENSE)

[Versión en español](README-ES.md)

PHP simple library for managing of data types.

---

- [Requirements](#requirements)
- [Installation](#installation)
- [Available Methods](#available-methods)
- [Quick Start](#quick-start)
- [Usage](#usage)
- [Tests](#tests)
- [Sponsor](#Sponsor)
- [License](#license)

---

Requirements
------------

[](#requirements)

This library is supported by PHP 7.4 version.

Installation
------------

[](#installation)

The preferred way to install this extension is through [Composer](http://getcomposer.org/download/).

To install **PHP Validate library**, simply:

```
composer require Josantonius/Validate

```

The previous command will only install the necessary files, if you prefer to **download the entire source code** you can use:

```
composer require Josantonius/Validate --prefer-source

```

You can also **clone the complete repository** with Git:

$ git clone

Or **install it manually**:

[Download Validate.php](https://raw.githubusercontent.com/Josantonius/PHP-Validate/master/src/Validate.php):

```
wget https://raw.githubusercontent.com/Josantonius/PHP-Validate/master/src/Validate.php

```

Available Methods
-----------------

[](#available-methods)

Available methods in this library:

### - Parameter return as array

[](#--parameter-return-as-array)

```
Validate::asArray($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as object

[](#--parameter-return-as-object)

```
Validate::asObject($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as JSON

[](#--parameter-return-as-json)

```
Validate::asJson($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as string

[](#--parameter-return-as-string)

```
Validate::asString($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as integer

[](#--parameter-return-as-integer)

```
Validate::asInteger($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as float

[](#--parameter-return-as-float)

```
Validate::asFloat($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as boolean

[](#--parameter-return-as-boolean)

```
Validate::asBoolean($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as IP

[](#--parameter-return-as-ip)

```
Validate::asIp($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as URL

[](#--parameter-return-as-url)

```
Validate::asUrl($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

### - Parameter return as URL

[](#--parameter-return-as-url-1)

```
Validate::asEmail($data, $default);
```

AttributeDescriptionTypeRequiredDefault$dataData to convert.mixedYes$defaultDefault value in error case.mixedNo´null´**\# Return** (mixed|null) → value, null or customized return value

Quick Start
-----------

[](#quick-start)

To use this library with **Composer**:

```
require __DIR__ . '/vendor/autoload.php';

use Josantonius\Validate\Validate;
```

Or if you installed it **manually**, use it:

```
require_once __DIR__ . '/Validate.php';

use Josantonius\Validate\Validate;
```

Usage
-----

[](#usage)

Example of use for this library:

### - ARRAY

[](#--array)

#### - When an array is passed

[](#--when-an-array-is-passed)

```
var_dump(Validate::asArray(['foo', 'bar'])); // ['foo', 'bar']
```

#### - When an JSON array is passed

[](#--when-an-json-array-is-passed)

```
var_dump(Validate::asArray('["foo", "bar"]')); // ['foo', 'bar']
```

#### - When an object is passed

[](#--when-an-object-is-passed)

```
$data = new \StdClass;

$data->foo = 'bar';

var_dump(Validate::asArray($data)); // ['foo' => 'bar']
```

#### - When an JSON object is passed

[](#--when-an-json-object-is-passed)

```
var_dump(Validate::asArray('{"foo": "bar"}')); // ['foo' => 'bar']
```

#### - Parameter return default value when there's no a correct array

[](#--parameter-return-default-value-when-theres-no-a-correct-array)

```
var_dump(Validate::asArray(false)); // null

var_dump(Validate::asArray(false, ['foo', 'bar'])); // ['foo', 'bar']
```

### - OBJECT

[](#--object)

#### - When an object is passed

[](#--when-an-object-is-passed-1)

```
$data = new \StdClass;

$data->foo = 'bar';

$object = Validate::asObject($data);

echo $object->foo; // 'bar'
```

#### - When an JSON object is passed

[](#--when-an-json-object-is-passed-1)

```
$object = Validate::asObject('{"foo": "bar"}');

echo $object->foo; // 'bar'
```

#### - When an array is passed

[](#--when-an-array-is-passed-1)

```
$object = Validate::asObject(['foo' => 'bar']));

echo $object->foo; // 'bar'
```

#### - Parameter return default value when there's no a correct object

[](#--parameter-return-default-value-when-theres-no-a-correct-object)

```
var_dump(Validate::asObject(false)); // null

$object = Validate::asObject(false, ['foo' => 'bar']);

echo $object->foo; // 'bar'
```

### - JSON

[](#--json)

#### - When an JSON object is passed

[](#--when-an-json-object-is-passed-2)

```
echo Validate::asJson('{"foo": "bar"}'); // '{"foo": "bar"}'
```

#### - When an array is passed

[](#--when-an-array-is-passed-2)

```
echo Validate::asJson(['foo' => 'bar']); // '{"foo":"bar"}'
```

#### - When an object is passed

[](#--when-an-object-is-passed-2)

```
$data = new \StdClass;

$data->foo = 'bar';

echo Validate::asJson($data); // '{"foo":"bar"}'
```

#### - Parameter return default value when there's no a correct JSON

[](#--parameter-return-default-value-when-theres-no-a-correct-json)

```
var_dump(Validate::asJson(false)); // null

echo Validate::asJson(false, '["foo", "bar"]'); // '["foo", "bar"]'
```

### - STRING

[](#--string)

#### - When an string is passed

[](#--when-an-string-is-passed)

```
echo Validate::asString('foo'); // 'foo'
```

#### - When an integer is passed

[](#--when-an-integer-is-passed)

```
echo Validate::asString(221104); // '221104'
```

#### - Parameter return default value when there's no a correct string

[](#--parameter-return-default-value-when-theres-no-a-correct-string)

```
var_dump(Validate::asString(false)); // null

echo Validate::asString(false, 'foo'); // 'foo'
```

### - INTEGER

[](#--integer)

#### - When an integer is passed

[](#--when-an-integer-is-passed-1)

```
echo Validate::asInteger(8); // 8
```

#### - When an string is passed

[](#--when-an-string-is-passed-1)

```
echo Validate::asInteger('8'); // 8
```

#### - Parameter return default value when there's no a correct integer

[](#--parameter-return-default-value-when-theres-no-a-correct-integer)

```
var_dump(Validate::asInteger(false)); // null

echo Validate::asInteger(false, 8); // 8
```

### - FLOAT

[](#--float)

#### - When an float is passed

[](#--when-an-float-is-passed)

```
echo Validate::asFloat(8.8); // 8.8
```

#### - When an string is passed

[](#--when-an-string-is-passed-2)

```
echo Validate::asFloat('8.8'); // 8.8
```

#### - Parameter return default value when there's no a correct float

[](#--parameter-return-default-value-when-theres-no-a-correct-float)

```
var_dump(Validate::asFloat(false)); // null

echo Validate::asFloat(false, 8.8); // 8.8
```

### - BOOLEAN

[](#--boolean)

#### - When an boolean true is passed

[](#--when-an-boolean-true-is-passed)

```
var_dump(Validate::asBoolean(true)); // true
```

#### - When an string true is passed

[](#--when-an-string-true-is-passed)

```
var_dump(Validate::asBoolean('true')); // true
```

#### - When an integer one is passed

[](#--when-an-integer-one-is-passed)

```
var_dump(Validate::asBoolean(1)); // true
```

#### - When an string one is passed

[](#--when-an-string-one-is-passed)

```
var_dump(Validate::asBoolean('1')); // true
```

#### - When an boolean false is passed

[](#--when-an-boolean-false-is-passed)

```
var_dump(Validate::asBoolean(false)); // false
```

#### - When an string false is passed

[](#--when-an-string-false-is-passed)

```
var_dump(Validate::asBoolean('false')); // false
```

#### - When an integer zero is passed

[](#--when-an-integer-zero-is-passed)

```
var_dump(Validate::asBoolean(0)); // false
```

#### - When an string zero is passed

[](#--when-an-string-zero-is-passed)

```
var_dump(Validate::asBoolean('0')); // false
```

#### - Parameter return default value when there's no a correct boolean

[](#--parameter-return-default-value-when-theres-no-a-correct-boolean)

```
var_dump(Validate::asBoolean(null)); // null

echo Validate::asBoolean(null, true); // true
```

### - IP

[](#--ip)

#### - When an IP is passed

[](#--when-an-ip-is-passed)

```
echo Validate::asIp('255.255.255.0'); // '255.255.255.0'
```

#### - Parameter return default value when there's no a correct IP

[](#--parameter-return-default-value-when-theres-no-a-correct-ip)

```
var_dump(Validate::asIp(null)); // null

echo Validate::asIp(null, '255.255.255.0'); // '255.255.255.0'
```

### - URL

[](#--url)

#### - When an URL is passed

[](#--when-an-url-is-passed)

```
echo Validate::asUrl('https://josantonius.com'); // 'https://josantonius.com'
```

#### - Parameter return default value when there's no a correct URL

[](#--parameter-return-default-value-when-theres-no-a-correct-url)

```
var_dump(Validate::asUrl(null)); // null

echo Validate::asUrl(null, 'https://josantonius.com'); // 'https://josantonius.com'
```

### - Email

[](#--email)

#### - When an email is passed

[](#--when-an-email-is-passed)

```
echo Validate::asEmail('hello@josantonius.com'); // 'hello@josantonius.com'
```

#### - Parameter return default value when there's no a correct email

[](#--parameter-return-default-value-when-theres-no-a-correct-email)

```
var_dump(Validate::asEmail(null)); // null

echo Validate::asEmail(null, 'hello@josantonius.com'); // 'hello@josantonius.com'
```

Tests
-----

[](#tests)

To run [tests](tests) you just need [composer](http://getcomposer.org/download/) and to execute the following:

```
git clone https://github.com/Josantonius/PHP-Validate.git

cd PHP-Validate

composer install

```

Run unit tests with [PHPUnit](https://phpunit.de/):

```
composer phpunit

```

Run [PSR2](http://www.php-fig.org/psr/psr-2/) code standard tests with [PHPCS](https://github.com/squizlabs/PHP_CodeSniffer):

```
composer phpcs

```

Run [PHP Mess Detector](https://phpmd.org/) tests to detect inconsistencies in code style:

```
composer phpmd

```

Run all previous tests:

```
composer tests

```

Sponsor
-------

[](#sponsor)

If this project helps you to reduce your development time, [you can sponsor me](https://github.com/josantonius#sponsor) to support my open source work 😊

License
-------

[](#license)

This repository is licensed under the [MIT License](LICENSE).

Copyright © 2018-2022, [Josantonius](https://github.com/josantonius#contact)

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance58

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

273d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/379c2b5bc5eb42e13126dfa929e3c23605d55ba31440fa7a487059d4bef4ef0d?d=identicon)[wdtecnologia](/maintainers/wdtecnologia)

---

Top Contributors

[![josantonius](https://avatars.githubusercontent.com/u/18104336?v=4)](https://github.com/josantonius "josantonius (9 commits)")[![syswd](https://avatars.githubusercontent.com/u/48538175?v=4)](https://github.com/syswd "syswd (2 commits)")

---

Tags

urljsonarraystringemailobjectintegerIPfloatdata typeboolean

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/syswd-validate/health.svg)

```
[![Health](https://phpackages.com/badges/syswd-validate/health.svg)](https://phpackages.com/packages/syswd-validate)
```

###  Alternatives

[jbzoo/utils

Collection of PHP functions, mini classes and snippets for everyday developer's routine life.

8321.5M36](/packages/jbzoo-utils)[cviebrock/eloquent-typecast

Trait for Eloquent models to force type-casting on retrieved values

2468.0k](/packages/cviebrock-eloquent-typecast)[yarri/link-finder

Converts non-clickable URLs and email addresses in text (plain or HTML) into clickable HTML links

18148.6k1](/packages/yarri-link-finder)[osiemsiedem/laravel-autolink

A Laravel package for converting URLs in a given string of text into clickable links.

13126.3k](/packages/osiemsiedem-laravel-autolink)[danog/phpstruct

PHP implementation of python's struct module.

1110.1k](/packages/danog-phpstruct)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
