如何在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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
功能强大的php分页函数
Jul 20 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
PHP回调函数简单用法示例
May 08 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
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
决策树的python实现方法
2014/11/18 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
Python实现直播推流效果
2019/11/26 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
tensorflow 实现数据类型转换
2020/02/17 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
环保建议书
2014/03/12 职场文书
百日安全生产活动总结
2014/07/05 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
罗马假日观后感
2015/06/08 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
就业证明函
2015/06/17 职场文书
小学美术教学反思
2016/02/17 职场文书
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS