如何在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学习笔记 PHP面向对象的程序设计
Jun 13 PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 PHP
php模拟post提交数据的方法
Feb 12 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
php实现的用户查询类实例
Jun 18 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
Feb 05 PHP
yii2简单使用less代替css示例
Mar 10 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
php中通用的excel导出方法实例
Dec 30 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
asp.net和php的区别点总结
2019/10/10 PHP
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
基于python 凸包问题的解决
2020/04/16 Python
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
五一服装活动方案
2014/01/11 职场文书
2014学年自我鉴定
2014/02/23 职场文书
销售提升方案
2014/06/07 职场文书
公司委托书范本5篇
2014/09/20 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
mysql事务对效率的影响分析总结
2021/10/24 MySQL