如何在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 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
php header Content-Type类型小结
Jul 03 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
深入php self与$this的详解
Jun 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
PHP中捕获超时事件的方法实例
Feb 12 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 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
php 传值赋值与引用赋值的区别
2010/12/29 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
分享php分页的功能模块
2015/06/16 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python异常学习笔记
2015/02/03 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
Python序列操作之进阶篇
2016/12/08 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
致百米运动员广播稿
2014/01/29 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
公务员处分决定书
2015/06/25 职场文书
业务员管理制度范本
2015/08/06 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers