Laravel Base
, (*1)
Somes utilities for Laravel 5.x, (*2)
- Middleware convert input camelCase to snakecase
- Middleware validate
I. Installation
Install via composer - edit your composer.json
to require the package., (*3)
"require": {
// ...
"php-soft/laravel-base": "dev-master",
}
Then run composer update
in your terminal to pull it in.
Once this has finished, you will need to add the service provider to the providers
array in your app.php
config as follows:, (*4)
'providers' => [
// ...
PhpSoft\Base\Providers\BaseServiceProvider::class,
]
II. Usage
To use the middlewares you will have to register them in app/Http/Kernel.php under the $routeMiddleware
property:, (*5)
protected $routeMiddleware = [
...
'camelToSnake' => \PhpSoft\Base\Middleware\CamelToSnake::class,
];
Add routes in app/Http/routes.php
, (*6)
Route::group(['middleware'=>'camelToSnake'], function() {
// Your route
});
2. Validate
This middleware is used to check validate for fields on different applications which use this package., (*7)
Add route middlewares in app/Http/Kernel.php, (*8)
protected $routeMiddleware = [
// ...
'validate' => \PhpSoft\Base\Middleware\Validation::class,
];
Usage, (*9)
Route::post('/user', ['middleware'=>'validate: App\Http\Validators\UserValidate',
function () {
//
}
]);
With App\Http\Validators\UserValidate
, it's class which you need to declare in route. This class is used to declare rules to validate., (*10)
You can also use other class to declare rules for validate in your application but It have to implements PhpSoft\Base\Validation\Contract
class., (*11)
For example, I declared rules in App\Http\Validators\UserValidate
class as follows:, (*12)
use PhpSoft\Base\Validation\Contract;
/**
* User Validate
*
* return array
*/
class UserValidate implements Contract
{
/**
* Custom validator
*
* @return boolean
*/
public static function boot($request)
{
IlluminateValidator::extend('validate_name', function($attribute, $value, $parameters) {
return $value == 'validate_name';
}, 'The name is in valid.'
);
}
/**
* Declare rules
*
* @return array
*/
public static function rules()
{
return [
'name' => 'required|max:255|validate_name',
'email' => 'required|email',
'password' => 'required|confirmed|min:6'
];
}
}