写一个Laravel中文验证扩展包
📦Laravel 验证中文,手机号,身份号
github.com/liaoshengping/laravel-v...
使用
$data = ['name' => '小廖one'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlpha']);
标识 | 说明 |
---|---|
chs | 验证某个字段的值只能是汉字 |
chsAlpha | 验证某个字段的值只能是汉字、字母 |
chsAlphaNum | 验证某个字段的值只能是汉字、字母和数字 |
chsDash | 验证某个字段的值只能是汉字、字母、数字和下划线_及破折号- |
mobile | 验证手机 |
idCard | 身份证 |
安装工具
先安装 超哥的 package-builder
切换到一个laravel 目录下创建 pkg cd pkg
执行:
创建
package-builder build laravel-validate-ext
输出内容如下
进入 src 创建 LaravelValidateExtProvider.php
,内容如下
<?php
namespace Liaosp\LaravelValidateExt;
use Illuminate\Support\ServiceProvider;
class LaravelValidateExtProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//todo 这边写逻辑
die('helloworld');
}
}
包载入laravel
进入包 composer.json编辑
添加扩展:
"extra": {
"laravel": {
"providers": [
"Liaosp\\LaravelValidateExt\\LaravelValidateExtProvider"
]
}
},
现在需要把这个提供类,添加到你的laravel项目中,通过composer 的方式导入
在laravel 项目中 composer.json 中添加
"repositories": [
{
"type": "path",
"url": "pkg\\laravel-validate-ext"
}
]
执行:
composer require liaosp/laravel-validate-ext dev-master
书写逻辑
如果这步有啥报错,比如命名之类的错误了,需要把他移除掉composer remove
再安装
如何测试 我这个包是否已经导入到laravel 框架了呢?我们在刚刚提供类中断电一下
public function boot()
{
die('helloworld');
}
因为laravel 加载的时候都先执行boot 初始化
php artisan test
可以看到 'helloworld'
到这边,你就掌握了laravel composer 包的开发了,具体实现我已经上传到了github 有兴趣的可以看一下。
github.com/liaoshengping/laravel-v...
Run
$v = Validator::make($request->all(), [
'name' => "idCard"
]);
if ($v->fails()) {
return $v->errors()->first();
}
输出是没有问题的,到这就完成了。
编写测试
那一般来说这样就已经可以了,但是一个合格的包,还需要编写测试
新建测试文件:
pkg\laravel-validate-ext\tests\ValidateTest.php
写入刚刚写好的测试扩展,比如:
/**
* 验证某个字段的值只能是汉字、字母和数字
*/
public function testChsAlphaNum()
{
$data = ['name' => '小L'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlphaNum']);
$this->assertTrue(!$v->fails());
$data = ['name' => '小L.'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlphaNum']);
$this->assertFalse(!$v->fails());
}
具体的测试上传到了github.com/liaoshengping/laravel-v...
Laravel 执行测试
php artisan test pkg/laravel-validate-ext
可以看到刚刚写的测试都已经通过,说明大概率是没问题了,下面就上传到packagist 可以供其他小伙伴使用了。
同学们一般Pr 的时候最好也写测试文件,这样作者就可以执行,没有问题再合并
上传到Packagist
我们打一个标签
在github 创建仓库: laravel-validate-ext 把刚刚的包传到这边仓库
git tag v1.0.0
git push origin --tags
登录 packagist.org/
把github 地址 输进去提交,就完成了
packagist.org/packages/liaosp/lara...
本作品采用《CC 协议》,转载必须注明作者和本文链接