如何在Laravel之外使用illuminate组件详解


Posted in PHP onSeptember 20, 2020

当代框架基本都是有组件构成,这使得框架变得更加灵活。The Laravel Components | github Laravel 中有不少优质组件,那如何在 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:

namespace app\common;

use Illuminate\Filesystem\Filesystem;
use Illuminate\Translation\FileLoader;
use Illuminate\Translation\Translator;
use Illuminate\Validation\Factory;

class Validator
{
 private static $instance = null;

 private function __construct()
 {
 }

 public static function getInstance(): Factory
 {
 if (null === static::$instance) {
  $translationPath = get_alias('@assets/lang');
  $translationLocale = 'zh-CN';
  $transFileLoader = new FileLoader(new Filesystem(), $translationPath);
  $translator = new Translator($transFileLoader, $translationLocale);
  static::$instance = new Factory($translator);
 }

 return static::$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',
// ];
function validator(array $data, array $rules, array $messages = [], array $customAttributes = [])
{
 return \app\common\Validator::getInstance()->make($data, $rules, $messages, $customAttributes);
}

测试使用:

$rules = ['name' => 'required|numeric'];
$customAttributes = ['name' => 'My name'];
$messages = ['name.required' => 'A name is required',];

$validator = validator($data, $rules, $customAttributes, $messages);
if ($validator->fails()) {
 $errors = $validator->errors()->all();
 Response::error(Errors::ParamsInvalid, implode(',', $errors), $errors);
}

总结

到此这篇关于如何在Laravel之外使用illuminate组件的文章就介绍到这了,更多相关Laravel之外使用illuminate组件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
PHP抽象类 介绍
Jun 13 PHP
php错误级别的设置方法
Jun 17 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php根据生日计算年龄的方法
Jul 13 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 #PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 #PHP
深入浅析安装PhpStorm并激活的步骤详解
Sep 17 #PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
Sep 17 #PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 #PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 #PHP
phpstorm激活码2020附使用详细教程
Sep 25 #PHP
You might like
PHP入门学习笔记之一
2010/10/12 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
js实现随机点名小功能
2017/08/17 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
详解K-means算法在Python中的实现
2017/12/05 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python合并多个excel文件的示例
2020/09/23 Python
工作决心书范文
2014/03/11 职场文书
终止合同协议书
2014/04/17 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
大二学习计划书范文
2014/04/27 职场文书
供电工程专业求职信
2014/08/09 职场文书
2015年工程师工作总结
2015/04/30 职场文书
生产设备维护保养制度
2015/08/06 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
KVM基础命令详解
2022/04/30 Servers