PHP code example of clearswitch / dragon-ball-laravel

1. Go to this page and download the library: Download clearswitch/dragon-ball-laravel library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

clearswitch / dragon-ball-laravel example snippets


    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,
    // ...
   ],

   //在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))
    ]

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

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

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

   auth('api')->user()

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

   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")
       }
  }

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(); 
    }

 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', '<=', 'addTime');
        $provider = (new DataProvider($builder, $filter))
            ->setColumns(['waybill', 'orderId', 'codCurrency', 'consigneeCountry', 'addTime', 'codAmount'])
            ->addSort('addTime')
            ->setSerializer(function ($rows) {
                $result = [];
                foreach ($rows as $row) {
                    $order = $row->getAttributes();
                    $result[] = $order;
                }
                return $result;
            });
        return $this->send($provider);
   }

   use ClearSwitch\DragonBallLaravel\Traits\Log
   $this->log()->info();

 use ClearSwitch\DragonBallLaravel\Events\ErrorWarnEvent;
 event(new ErrorWarnEvent(['message' =>"错误信息", 'code' =>"code", 'file' =>"那个文件", 'line' =>'那一行']));


class OrderStatus extends AbstractConstant
{
    /**
     * @Message("等待")
     */
    const WAIT = 1;

    /**
     * @Message("发货")
     */
    const SHIP = 2;
}

   HAS_CONSTANT_CACHE=true

  //获得所有常量的数组
   OrderStatus::list();
  //获得常量标签
   OrderStatus::messages();
  //获得常量的注解 get+标签名字(常量值)
   OrderStatus::getMessage(1);