如何在Laravel之外使用illuminate組件詳解
當(dāng)代框架基本都是有組件構(gòu)成,這使得框架變得更加靈活。The Laravel Components | github Laravel 中有不少優(yōu)質(zhì)組件,那如何在 Laravel 之外使用 illuminate 組件呢?
illuminate/validation
以 illuminate/validation 為例,validation 有豐富的數(shù)據(jù)驗(yàn)證功能。
在項(xiàng)目的 composer.json 文件中添加:
...
"require": {
...
"illuminate/validation": "^5.8",
...
從 Laravel-Lang/lang 項(xiàng)目中復(fù)制需要的語(yǔ)言文件放到自己的項(xiàng)目中。
例如:在 Yii2 項(xiàng)目中,復(fù)制對(duì)應(yīng)語(yǔ)言文件到項(xiàng)目中的 assets/lang/zh-CN/validation.php。
創(chuàng)建 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;
}
}
在全局函數(shù)文件添加:
// 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);
}
測(cè)試使用:
$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);
}
總結(jié)
到此這篇關(guān)于如何在Laravel之外使用illuminate組件的文章就介紹到這了,更多相關(guān)Laravel之外使用illuminate組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- umi插件開(kāi)發(fā)仿dumi項(xiàng)目自動(dòng)生成導(dǎo)航欄實(shí)現(xiàn)詳解
- umi插件開(kāi)發(fā)仿dumi項(xiàng)目加載markdown文件實(shí)現(xiàn)詳解
- umi插件開(kāi)發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)markdown文件轉(zhuǎn)為頁(yè)面
- 獨(dú)立使用umi的核心插件模塊示例詳解
- JavaScript @umijs/plugin-locale插件使用教程
- Umi4集成阿里低代碼框架lowcode-engine實(shí)現(xiàn)
- umi插件開(kāi)發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)頁(yè)面布局詳解
相關(guān)文章
php curl抓取網(wǎng)頁(yè)的介紹和推廣及使用CURL抓取淘寶頁(yè)面集成方法
抓取網(wǎng)頁(yè)內(nèi)容,分析網(wǎng)頁(yè)數(shù)據(jù)經(jīng)常使用php curl,簡(jiǎn)潔易用,本篇文章通過(guò)代碼實(shí)例給大家講解 php curl抓取網(wǎng)頁(yè)的介紹和推廣及使用CURL抓取淘寶頁(yè)面集成方法,需要的朋友參考下2015-11-11
Laravel框架學(xué)習(xí)筆記(二)項(xiàng)目實(shí)戰(zhàn)之模型(Models)
上一篇已經(jīng)介紹開(kāi)發(fā)環(huán)境的搭建,這篇將從項(xiàng)目實(shí)戰(zhàn)開(kāi)發(fā),一步一步了解laravel框架。首先我們來(lái)了解下laravel框架的模型 (Models)2014-10-10
thinkphp隱藏index.php/home并允許訪問(wèn)其他模塊的實(shí)現(xiàn)方法
這篇文章主要介紹了thinkphp隱藏index.php/home并允許訪問(wèn)其他模塊的實(shí)現(xiàn)方法,想要達(dá)成的效果很簡(jiǎn)單,我有兩個(gè)模塊,Home、Wechat。具體詳情請(qǐng)參考下本文。感興趣的朋友一起看看吧2016-10-10
解決laravel id非自增 模型取回為0 的問(wèn)題
今天小編就為大家分享一篇解決laravel id非自增 模型取回為0 的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用
今天小編就為大家分享一篇php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
wordpress網(wǎng)站轉(zhuǎn)移到本地運(yùn)行測(cè)試的方法
這篇文章主要為大家詳細(xì)介紹了wordpress網(wǎng)站轉(zhuǎn)移到本地運(yùn)行測(cè)試的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
微信公眾號(hào)開(kāi)發(fā)之獲取位置信息php代碼
這篇文章主要為大家詳細(xì)介紹了微信公眾號(hào)開(kāi)發(fā)之獲取位置信息php代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
PHP仿博客園 個(gè)人博客(1) 數(shù)據(jù)庫(kù)與界面設(shè)計(jì)
自學(xué)PHP大半年多了,斷斷續(xù)續(xù)地,但是最終還是堅(jiān)定了我的想法,將PHP繼續(xù)下去,所以寫(xiě)這個(gè)PHP的博客是為了找個(gè)穩(wěn)定的 PHP工作,不求工資多高,但求一收留之地2013-07-07

