PHP Laravel Validation.
![Quality Score][ico-code-quality], (*1)
A tiny package to use laravel validation outside laravel with support translate error message. this package is extend for rakit/validation so read it's document for more information., (*2)
Features
- Init validation easy with trait.
- Support Multi lang for error messages.
- More come soon.
Requirements & Installation
Requires PHP 7.0+, (*3)
Via Composer, (*4)
``` bash
$ composer require yemenifree/laravel-validation, (*5)
## Getting Started
To init validation on class add `HasValidator` trait.
```php
use Yemenifree\Validation\Traits\HasValidator;
class SomeController
{
use HasValidator;
//
}
Then to valid some data you can pass array for data & rules and others options., (*6)
$this->valid(array $data, array $rules, array $messages = [], array $aliases = [])
For example, (*7)
/**
* Register User
*
* @return array
*/
public function register()
{
$isValid = $this->valid(
[
'username' => 'salah',
'password' => 'test'
]
, [
'username' => 'required',
'password' => 'required',
]);
if(!$isValid){
// data not valid.
}
// every thing right.
}
If you have same response for all form in controller you can handler validation error once by create InValidCallback
in class., (*8)
use Yemenifree\Validation\Traits\HasValidator;
class SomeController
{
use HasValidator;
/**
* Register User
*
* @return array
*/
public function register()
{
$isValid = $this->valid(
[
'username' => 'salah',
'password' => 'test'
]
, [
'username' => 'required',
'password' => 'required',
]);
// if data not valid will excute `InValidCallback` in this class.
if(!$isValid)
{
return;
}
// every thing right.
}
/**
* In valid function.
*
* @param array $errors
*
* @throws InvalidArgumentException
*/
public function InValidCallback(array $errors)
{
// do whatevet you want with errors.
return false;
}
}
You can use custom translate file for validation errors., (*9)
use Yemenifree\Validation\Traits\HasValidator;
class SomeController
{
use HasValidator;
public function __construct()
{
$this->setValidatorLocal(
// file name wihout .php
'ar',
// path of translate
'translate/path'
);
}
/**
* Register User
*
* @return array
*/
public function register()
{
$isValid = $this->valid(
[
'username' => 'salah',
'password' => 'test'
]
, [
'username' => 'required',
'password' => 'required',
]);
if(!$isValid)
{
// message errors.
$errors = $this->getValidErrors();
}
// every thing right.
}
}
translate files must return array of messages. see src/lang/ar.php
for example., (*10)
To access to all method of Validator
use getValidator()
method., (*11)
use Yemenifree\Validation\Traits\HasValidator;
class SomeController
{
use HasValidator;
public function __construct()
{
// add custom rule.
$this->getValidator()->addValidator('simple', new SimpleRule());
}
}
For more information about rules check rakit/validation, (*12)
Change log
Please see CHANGELOG for more information on what has changed recently., (*13)
Contributing
Please see CONTRIBUTING for details., (*14)
Security
If you discover any security related issues, please email yemenifree@yandex.com instead of using the issue tracker., (*15)
Credits
License
The MIT License (MIT). Please see License File for more information., (*16)