如何在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 相关文章推荐
两种php调用Java对象的方法
Oct 09 PHP
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
php中去除所有js,html,css代码
Oct 12 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
php + ajax 实现的写入数据库操作简单示例
May 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
基于pear auth实现登录验证
2010/02/26 PHP
浅析PHP开发规范
2018/02/05 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
python中__slots__用法实例
2015/06/04 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
高中军训感言1000字
2014/03/01 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
担保书格式
2015/01/20 职场文书
护理专业自荐信范文
2015/03/06 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
python中opencv实现图片文本倾斜校正
2021/06/11 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技