如何在Laravel之外使用illuminate组件详解
当代框架基本都是有组件构成,这使得框架变得更加灵活。TheLaravelComponents|githubLaravel中有不少优质组件,那如何在Laravel之外使用illuminate组件呢?
illuminate/validation
以illuminate/validation为例,validation有丰富的数据验证功能。
在项目的composer.json文件中添加:
...
"require":{
...
"illuminate/validation":"^5.8",
...
从Laravel-Lang/lang项目中复制需要的语言文件放到自己的项目中。
例如:在Yii2项目中,复制对应语言文件到项目中的assets/lang/zh-CN/validation.php。
创建common/Validator.php:
namespaceapp\common;
useIlluminate\Filesystem\Filesystem;
useIlluminate\Translation\FileLoader;
useIlluminate\Translation\Translator;
useIlluminate\Validation\Factory;
classValidator
{
privatestatic$instance=null;
privatefunction__construct()
{
}
publicstaticfunctiongetInstance():Factory
{
if(null===static::$instance){
$translationPath=get_alias('@assets/lang');
$translationLocale='zh-CN';
$transFileLoader=newFileLoader(newFilesystem(),$translationPath);
$translator=newTranslator($transFileLoader,$translationLocale);
static::$instance=newFactory($translator);
}
returnstatic::$instance;
}
}
在全局函数文件添加:
//https://learnku.com/docs/laravel/5.8/validation/3899#manually-creating-validators
//$rules=[
//'name'=>'required|string|min:2|max:5',
//'code'=>'required|string|min:2|max:5',
//];
functionvalidator(array$data,array$rules,array$messages=[],array$customAttributes=[])
{
return\app\common\Validator::getInstance()->make($data,$rules,$messages,$customAttributes);
}
测试使用:
$rules=['name'=>'required|numeric'];
$customAttributes=['name'=>'Myname'];
$messages=['name.required'=>'Anameisrequired',];
$validator=validator($data,$rules,$customAttributes,$messages);
if($validator->fails()){
$errors=$validator->errors()->all();
Response::error(Errors::ParamsInvalid,implode(',',$errors),$errors);
}
总结
到此这篇关于如何在Laravel之外使用illuminate组件的文章就介绍到这了,更多相关Laravel之外使用illuminate组件内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!