PHPackages                             clearswitch/dragon-ball-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. clearswitch/dragon-ball-laravel

ActiveLibrary[Framework](/categories/framework)

clearswitch/dragon-ball-laravel
===============================

laravel package

1.2.1(1y ago)035MITPHP

Since Nov 10Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ClearSwicth/Dragon-Ball-Laravel)[ Packagist](https://packagist.org/packages/clearswitch/dragon-ball-laravel)[ RSS](/packages/clearswitch-dragon-ball-laravel/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (14)Used By (0)

Dragon-Ball-Laravel
===================

[](#dragon-ball-laravel)

对laravel10 进行个性化的定制

安装要求
====

[](#安装要求)

- php &gt;=8.0
- Laravel &gt;10
- redis

优化的功能
=====

[](#优化的功能)

- 模型的命名规则

> 蛇形的命名规则，例如表名字order\_item 定模型的时候，需要写成OrderItem

```
    use ClearSwitch\DragonBallLaravel\Models\AbstractMode;
    class OrderItem extends AbstractMode{

    }
```

> 模型都必须继承

```
   use ClearSwitch\DragonBallLaravel\Models\AbstractMode;
   class User extends AbstractMode
  {

  }
```

> 添加数据的数据的时候,如果没填写主键值,自动添加用雪花规格自动补充主键

```
    //当填写了主键的值，那么存储的数据主键值就是1
    $model=new OrderItem([
      "id"=>'1'
    ])
    $model->save();
    //当没有写主键的时候，主键自动已雪花的格式补充
    $model=new OrderItem([
      "sku"=>'1123443545'
    ])
    $model->save();
    //如果你想自定义,这个自动补充主键的规则你需要写如下的代码
   use Illuminate\Support\ServiceProvider;
   class SnowflakeServiceProvider extends ServiceProvider
   {
       public function register()
       {
        // 首先解除包中绑定的snowflake服务
        $this->app->forgetInstance('snowflake');
        //绑定自定义的名叫snowflake的服务,名字必须和包中的服务名字保持一直
        $this->app->singleton('snowflake', function ($app) {
            // 你自己的服务代码
            return new YourCustomSnowflakeClass();
        });
       }
   }
   //然后注册自己定义的服务
   //您可以在 `config/app.php` 文件中的 `providers` 数组中添加它：
   'providers' => [
    // ...
    App\Providers\SnowflakeServiceProvider::class,
    // ...
   ],
```

- token 的验证

> token 使用的openssl 加密和解密,需要定义创建一个token的配置文件

```
   //在app/config 的目录下增加一个dragonBallLaravel.php 的文件,配置如下
   return [
    //模型中的时间结果是否是Y-m-d H:i:s
    'formatYmdHis' => env('FORMAT_YMDHIS', false),
    //常量是否启用缓存
    'has_constant_cache' => env('HAS_CONSTANT_CACHE', true),
    //是否打印sql
    'print_sql' => env('PRINT_SQL', false),
    //token的配置
    'token' => [
        //定义自己的加密密钥
        'tokenKey' => env("TOKEN_KEY", 'JVLNCYUupnPqgJ$x3t92$#6RMcm7F%rk'),
        //定义自己加密的时候的偏移量
        'vi' => env('TOKEN_VI', 'jSjJax*^gmZNa4r&'),
         //定义token的过期时间
        'expires' => env('EXPIRES', now()->addYear(100))
    ]
```

> 做好这些就可以在auth.php 配置文件中就可以配置叫token的驱动

```
  //例如
 'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,//false true
         ],
```

> 路由使用token的守卫

```
    Route::middleware('auth')->group(function () {});
```

> 用户认证器的模型需要调用

```
    use Illuminate\Contracts\Auth\Authenticatable;
    use ClearSwitch\DragonBallLaravel\Models\AbstractMode;
   class User extends AbstractMode implements  Authenticatable
  {

  }
```

> 获得验证通过的用户

```
   auth('api')->user()
```

- 缓存

> 在cache.php 配置中增加一个驱动，这个驱动是token用的

```
   'token_file' => [
            'driver' => 'token_file',
            'path'=>storage_path('token'),
      ],
```

- 异常提企业微信和邮箱

> 在config 目录中配置文件 文件名字 robot.php

```
   return [
    'qy_we_chat' => [
        'corpid' => '企业微信群组',
        'corpsecret' => '密钥',
        //如果批量设置接受者xxx|xxxx|xxx
        'touser'=>'接受者'
    ],
    'mail'=>[
        'username'=>'发送者的邮箱',
        'password'=>'邮箱密码',
        'sender'=>'发送者名字',
        'host'=>'邮箱服务器'
    ]
];
```

> 调用

```
  use  ClearSwitch\DragonBallLaravel\Traits\Robot
  class sendMessage{
       use Robot;
       public function send(){
          $this->qyWeChat("类容")
          $this->qyWeChat("EmailSend")
       }
  }
```

- request

> JsonRequest ,ListRequest,QueryRequest JsonRequest 对应的json请求 QueryRequest 对应的是Get的请求 ListRequest 对应的是类表请求

```
use ClearSwitch\DragonBallLaravel\Requests\JsonRequest;
class Login extends JsonRequest
{
    public function rules()
    {
        return [];
    }
    public function attributes()
    {
        return [];
    }
}
//Controller
   use Login
   public function login(Login $request)
    {
        //获得请求数据通过的数据
        $data = $request->validated();
    }
```

> ListRequest 的应用

```
 use ClearSwitch\DragonBallLaravel\Requests\ListRequest;
   class order extends ListRequest
  {
    public function rules()
    {
        return [];
    }
    public function attributes()
    {
        return [];
    }
}
```

> 控制器

```
   use ClearSwitch\DragonBallLaravel\Controllers\AbstractController;
   use ClearSwitch\DragonBallLaravel\Component\DataProvider;
   use ClearSwitch\DragonBallLaravel\Component\DataFilter;
   class order extends AbstractController{
     $filter = (new DataFilter($data))
            ->addRule('waybill', '=', 'waybill')
            ->addRule('orderId', '=', 'orderId')
            ->addRule('start_time', '>=', 'addTime')
            ->addRule('end_time', '
