如何在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 相关文章推荐
php5 and xml示例
Nov 22 PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
PHP form 表单传参明细研究
Jul 17 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
yii2实现根据时间搜索的方法
May 25 PHP
php微信公众号开发之现金红包
Apr 16 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
PHP代码覆盖率统计详解
Jul 22 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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP获取url的函数代码
2011/08/02 PHP
php中使用url传递数组的方法
2015/02/11 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
JS常见算法详解
2017/02/28 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
vue+Element-ui实现分页效果
2020/11/15 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
员工自我鉴定范文
2013/10/06 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
《菜园里》教学反思
2014/04/17 职场文书
部门2014年度工作总结
2014/11/12 职场文书
2014年团支部工作总结
2014/11/17 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL