Browse Source

设备列表

master
lijunjie 4 years ago
parent
commit
127c0f6f26
  1. 21070
      _ide_helper.php
  2. 65
      app/Admin/Controllers/AdminSettingController.php
  3. 49
      app/Admin/Controllers/EquipController.php
  4. 126
      app/Admin/Forms/EquipCacheForm.php
  5. 16
      app/Admin/Repositories/AdminSetting.php
  6. 17
      app/Admin/Services/AdminSettingService.php
  7. 43
      app/Admin/Services/EquipInfoService.php
  8. 31
      app/Models/AdminSetting.php
  9. 38
      app/Models/Equip.php
  10. 32
      app/Models/EquipResourceRecord.php
  11. 29
      app/Models/User.php
  12. 1
      composer.json
  13. 467
      composer.lock
  14. 12
      lang/en/admin-setting.php

21070
_ide_helper.php

File diff suppressed because it is too large

65
app/Admin/Controllers/AdminSettingController.php

@ -0,0 +1,65 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\AdminSetting;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class AdminSettingController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new AdminSetting(), function (Grid $grid) {
$grid->column('slug')->sortable();
$grid->column('value');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('slug');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new AdminSetting(), function (Show $show) {
$show->field('slug');
$show->field('value');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new AdminSetting(), function (Form $form) {
$form->display('slug');
$form->text('value');
$form->display('created_at');
$form->display('updated_at');
});
}
}

49
app/Admin/Controllers/EquipController.php

@ -2,14 +2,30 @@
namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\CloneEquipResourceRecordAction;
use App\Admin\Forms\EquipCacheForm;
use App\Admin\Renders\EquipResourceRecordRender;
use App\Admin\Repositories\AdminSetting;
use App\Admin\Repositories\Equip;
use App\Admin\Services\AdminSettingService;
use App\Admin\Services\EquipInfoService;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class EquipController extends AdminController
{
public function index(Content $content)
{
return $content
->translation($this->translation())
->title('设备列表')
->description($this->description()['index'] ?? trans('admin.list'))
->body($this->grid());
}
/**
* Make a grid builder.
*
@ -17,22 +33,39 @@ class EquipController extends AdminController
*/
protected function grid()
{
return Grid::make(new Equip(), function (Grid $grid) {
$api_key = AdminSettingService::getConfig('onenet_api_key');
return Grid::make(null, function (Grid $grid) use ($api_key) {
$grid->quickSearch()->placeholder('设备ID');
$param = request()->all();
$grid->column('id')->sortable();
$grid->column('title');
$grid->column('online', '是否在线');
$grid->column('desc');
$grid->column('缓存命令')->display('写设备资源')->modal(function (Grid\Displayers\Modal $modal) use ($api_key) {
// 标题
$modal->title('缓存命令-写设备资源');
// 自定义图标
$modal->icon('feather icon-edit');
// 传递当前行字段值
return EquipCacheForm::make()->payload([
'imei' => key($this->auth_info),
'obj_id' => $this->id,
'api_key' => $api_key,
]);
});
$grid->column('tags');
$grid->column('protocol');
$grid->column('location');
$grid->column('private');
$grid->column('auth_info');
$grid->column('auth');
$grid->column('obsv');
$grid->column('other');
$grid->column('chip');
$grid->column('psk');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->column('create_time', '设备创建时间');
$grid->disableActions();
$grid->model()->setData(EquipInfoService::getInfos($param));
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');

126
app/Admin/Forms/EquipCacheForm.php

@ -0,0 +1,126 @@
<?php
namespace App\Admin\Forms;
use App\Admin\Renders\EquipResourceRecordRender;
use App\Admin\Services\EquipResourceRecordService;
use App\Models\EquipResourceRecord as EquipResourceRecordModel;
use Dcat\Admin\Admin;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;
class EquipCacheForm extends Form implements LazyRenderable
{
use LazyWidget;
public function render()
{
$equip_Render = new EquipResourceRecordRender();
Admin::script($equip_Render->script());
return parent::render(); // TODO: Change the autogenerated stub
}
/**
* Handle the form request.
*
* @param array $input
*
* @return mixed
*/
public function handle(array $input)
{
$equip_resource_service = new EquipResourceRecordService();
$res = $equip_resource_service->writeCache($input);
if (isset($res['errno'])){
if ($res['errno'] === 0) {
$equip_resource_model = new EquipResourceRecordModel();
$equip_resource_model['imei'] = $input['imei'];
$equip_resource_model['obj_id'] = $input['obj_id'];
$equip_resource_model['obj_inst_id'] = $input['obj_inst_id'];
$equip_resource_model['mode'] = $input['mode'];
$equip_resource_model['expired_time'] = $input['expired_time'];
$equip_resource_model['trigger_msg'] = $input['trigger_msg'];
$equip_resource_model['api-key'] = $input['api-key'];
$equip_resource_model['res_id'] = $input['res_id'];
$equip_resource_model['val'] = $input['val'];
$equip_resource_model->save();
return $this->response()->success('提交成功')->refresh();;
}
return $this->response()->error($res['error']);
}
return $this->response()->error('提交失败');
}
/**
* Build a form here.
*/
public function form()
{
$this->text('imei')->required();
$this->text('obj_id', '设备id')->required();
$this->text('obj_inst_id')->required();
$this->text('mode', 'Write的写模式,只能是1或者2')->required();
$this->datetime('expired_time', '命令过期时间戳,必填且大于Valid Time')->required();
$this->text('trigger_msg', '命令触发的上行消息类型[1,7]')->required();
$this->text('api-key')->required();
$this->text('res_id')->required();
// 68C0 0866472059902068 0109 0111 00 0000000002 01 8D16
// $a = EquipResourceRecordService::getCheckCode('68C008664720599020680109011100000000000201');
$this->text('起始符')->disable(true);
$this->text('设备类型')->disable(true);
$this->text('设备号');
$this->text('控制码')->disable(true);
$this->text('数据长度')->disable(true);
$this->text('指令标识')->disable(true);
$this->text('数据')->disable(true);
$this->select('命令方式')->options(['00', '11'])->disable(false);
$this->text('自定义数组');
$this->text('固定字节')->disable(true);
$this->text('累加和校验')->disable(true);
$this->text('结束符')->disable(true);
$this->text('val')->required();
$this->addAjaxScript();
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
return [
'imei' => $this->payload['imei'],
'obj_id' => $this->payload['obj_id'],
'obj_inst_id' => 0,
'mode' => 1,
'expired_time' => date('Y-m-d H:i:s', strtotime("+1 day")),
'trigger_msg' => 4,
'api-key' => $this->payload['api_key'],
'res_id' => '5750',
'起始符' => '68',
'设备类型' => 'C0',
'设备号' => str_pad($this->payload['imei'], 16, '0', STR_PAD_LEFT),
'控制码' => '01',
'数据长度' => '09',
'指令标识' => '0111',
'数据' => '00',
'命令方式' => 0,
'自定义数组' => '',
'固定字节' => '01',
'累加和校验' => '',
'结束符' => '16',
];
}
}

16
app/Admin/Repositories/AdminSetting.php

@ -0,0 +1,16 @@
<?php
namespace App\Admin\Repositories;
use App\Models\AdminSetting as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class AdminSetting extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}

17
app/Admin/Services/AdminSettingService.php

@ -0,0 +1,17 @@
<?php
namespace App\Admin\Services;
use App\Models\AdminSetting;
use App\Models\Equip;
use GuzzleHttp\Client;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Http;
class AdminSettingService
{
public static function getConfig($key)
{
return AdminSetting::where(['slug' => $key])->value('value');
}
}

43
app/Admin/Services/EquipInfoService.php

@ -8,6 +8,49 @@ use Illuminate\Support\Facades\Http;
class EquipInfoService
{
public static function getInfos($param)
{
$page = $param['page'] ?? 1;
$per_page = $param['per_page'] ?? 1;
$query = [
'page' => $page,
'per_page' => $per_page,
];
if (!empty($param['_search_'])){
$query['device_id'] = $param['_search_'];
}
$query = http_build_query($query);
$client = new Client([
'base_uri' => config('onenet.api_host'),
'headers' => [
'api-key' => "l5KGPjSqQVuwSSjlUAuBohPNVrM=",
]
]);
$response = $client->request('GET', 'devices?' . $query);
$res = json_decode($response->getBody()->getContents(), true);
$res = !empty($res['data']['devices']) ? $res['data']['devices'] : [];
foreach ($res as &$re) {
$re['online'] = $re['online'] == true ? '在线' : '离线';
// $re['location'] = implode(',', $re['location']);
//
// $re['auth_info'] = implode(',', $re['auth_info']);
}
$res[] = [];
$res = new Paginator($res, $per_page, $page, [
'path' => url()->current(),
'query' => $param,
]);
return $res;
}
public static function getDatapoints($param)
{
if (empty($param['_search_'])){

31
app/Models/AdminSetting.php

@ -0,0 +1,31 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\AdminSetting
*
* @property int $slug
* @property string $value
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting query()
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|AdminSetting whereValue($value)
* @mixin \Eloquent
*/
class AdminSetting extends Model
{
use HasDateTimeFormatter;
protected $table = 'admin_settings';
protected $primaryKey = 'slug';
}

38
app/Models/Equip.php

@ -6,6 +6,44 @@ use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\Equip
*
* @property int $id
* @property string $title 设备名称
* @property string $desc 设备描述
* @property string $tags 设备标签,字符串数组
* @property string $protocol 接入协议,这里只能是LwM2M
* @property mixed $location 设备位置(“纬度”,“经度”,“高度”)
* @property int $private 设备私密性(默认true)
* @property mixed $auth_info NBIOT设备:{“imei码”:“imsi码”},imei、imsi规则见说明
* @property string $auth Auth_Code,由数字或字母组成,不超过16位
* @property int $obsv 是否订阅设备资源(默认为true)
* @property mixed $other 其他信息(JSON格式,可自定义)
* @property int $chip 测试设备与芯片类型对应关系(取值1-6),详情见说明
* @property string $psk DTLS加密所使用的PSK,长度8-16个字节,字母或数字组成
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|Equip newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Equip newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Equip query()
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereAuth($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereAuthInfo($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereChip($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereDesc($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereLocation($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereObsv($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereOther($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip wherePrivate($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereProtocol($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip wherePsk($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereTags($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|Equip whereUpdatedAt($value)
* @mixin \Eloquent
*/
class Equip extends Model
{
use HasDateTimeFormatter; }

32
app/Models/EquipResourceRecord.php

@ -6,6 +6,38 @@ use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\EquipResourceRecord
*
* @property int $id
* @property string $imei nbiot设备的身份码
* @property string $obj_id 设备的object id , 对应到平台模型中为数据流id,必填
* @property string $obj_inst_id nbiot设备object下具体一个instance的id ,对应到平台模型中数据点key值的一部分,必填
* @property string $mode write的写模式,只能是1或者2
* @property string $expired_time 命令过期时间戳,必填且大于valid_time
* @property string $trigger_msg 命令触发的上行消息类型,填写时必须在[1,7]之间;不填写默认为7
* @property string $api-key
* @property int $res_id
* @property string $val
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord query()
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereApiKey($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereExpiredTime($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereImei($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereMode($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereObjId($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereObjInstId($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereResId($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereTriggerMsg($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|EquipResourceRecord whereVal($value)
* @mixin \Eloquent
*/
class EquipResourceRecord extends Model
{
use HasDateTimeFormatter;

29
app/Models/User.php

@ -8,6 +8,35 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
/**
* App\Models\User
*
* @property int $id
* @property string $name
* @property string $email
* @property \Illuminate\Support\Carbon|null $email_verified_at
* @property string $password
* @property string|null $remember_token
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
* @property-read int|null $notifications_count
* @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Sanctum\PersonalAccessToken[] $tokens
* @property-read int|null $tokens_count
* @method static \Database\Factories\UserFactory factory(...$parameters)
* @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|User newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|User query()
* @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereEmailVerifiedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
* @mixin \Eloquent
*/
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;

1
composer.json

@ -6,6 +6,7 @@
"license": "MIT",
"require": {
"php": "^8.0.2",
"barryvdh/laravel-ide-helper": "^2.12",
"dcat/laravel-admin": "2.*",
"guzzlehttp/guzzle": "^7.4",
"laravel/framework": "^9.19",

467
composer.lock

@ -4,8 +4,166 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "2983b13bdfdab67fc261cf465d772bfb",
"content-hash": "29c68fdf25c279fcbbc8e9f41d20d143",
"packages": [
{
"name": "barryvdh/laravel-ide-helper",
"version": "v2.12.3",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-ide-helper.git",
"reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/3ba1e2573b38f72107b8aacc4ee177fcab30a550",
"reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"barryvdh/reflection-docblock": "^2.0.6",
"composer/pcre": "^1 || ^2 || ^3",
"doctrine/dbal": "^2.6 || ^3",
"ext-json": "*",
"illuminate/console": "^8 || ^9",
"illuminate/filesystem": "^8 || ^9",
"illuminate/support": "^8 || ^9",
"nikic/php-parser": "^4.7",
"php": "^7.3 || ^8.0",
"phpdocumentor/type-resolver": "^1.1.0"
},
"require-dev": {
"ext-pdo_sqlite": "*",
"friendsofphp/php-cs-fixer": "^2",
"illuminate/config": "^8 || ^9",
"illuminate/view": "^8 || ^9",
"mockery/mockery": "^1.4",
"orchestra/testbench": "^6 || ^7",
"phpunit/phpunit": "^8.5 || ^9",
"spatie/phpunit-snapshot-assertions": "^3 || ^4",
"vimeo/psalm": "^3.12"
},
"suggest": {
"illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9)."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.12-dev"
},
"laravel": {
"providers": [
"Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Barryvdh\\LaravelIdeHelper\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
"keywords": [
"autocomplete",
"codeintel",
"helper",
"ide",
"laravel",
"netbeans",
"phpdoc",
"phpstorm",
"sublime"
],
"support": {
"issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
"source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.12.3"
},
"funding": [
{
"url": "https://fruitcake.nl",
"type": "custom"
},
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
"time": "2022-03-06T14:33:42+00:00"
},
{
"name": "barryvdh/reflection-docblock",
"version": "v2.0.6",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/ReflectionDocBlock.git",
"reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16",
"reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.0,<4.5"
},
"suggest": {
"dflydev/markdown": "~1.0",
"erusev/parsedown": "~1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-0": {
"Barryvdh": [
"src/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mike van Riel",
"email": "mike.vanriel@naenius.com"
}
],
"support": {
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6"
},
"time": "2018-12-13T10:34:14+00:00"
},
{
"name": "brick/math",
"version": "0.10.1",
@ -68,6 +226,83 @@
],
"time": "2022-08-01T22:54:31+00:00"
},
{
"name": "composer/pcre",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd",
"reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.3",
"phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\Pcre\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "PCRE wrapping library that offers type-safe preg_* replacements.",
"keywords": [
"PCRE",
"preg",
"regex",
"regular expression"
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.0.0"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2022-02-25T20:21:48+00:00"
},
{
"name": "dcat/laravel-admin",
"version": "2.2.2-beta",
@ -2678,6 +2913,121 @@
],
"time": "2022-08-01T11:03:24+00:00"
},
{
"name": "phpdocumentor/reflection-common",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-2.x": "2.x-dev"
}
},
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jaap van Otterdijk",
"email": "opensource@ijaap.nl"
}
],
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
"homepage": "http://www.phpdoc.org",
"keywords": [
"FQSEN",
"phpDocumentor",
"phpdoc",
"reflection",
"static analysis"
],
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
},
"time": "2020-06-27T09:03:43+00:00"
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "77a32518733312af16a44300404e945338981de3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
"reference": "77a32518733312af16a44300404e945338981de3",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.2 || ^8.0",
"phpdocumentor/reflection-common": "^2.0"
},
"require-dev": {
"ext-tokenizer": "*",
"psalm/phar": "^4.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-1.x": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mike van Riel",
"email": "me@mikevanriel.com"
}
],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
},
"time": "2022-03-15T21:29:03+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.8.1",
@ -7052,65 +7402,6 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
{
"name": "phpdocumentor/reflection-common",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-2.x": "2.x-dev"
}
},
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jaap van Otterdijk",
"email": "opensource@ijaap.nl"
}
],
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
"homepage": "http://www.phpdoc.org",
"keywords": [
"FQSEN",
"phpDocumentor",
"phpdoc",
"reflection",
"static analysis"
],
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
},
"time": "2020-06-27T09:03:43+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
"version": "5.3.0",
@ -7174,62 +7465,6 @@
},
"time": "2021-10-19T17:43:47+00:00"
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "77a32518733312af16a44300404e945338981de3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
"reference": "77a32518733312af16a44300404e945338981de3",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.2 || ^8.0",
"phpdocumentor/reflection-common": "^2.0"
},
"require-dev": {
"ext-tokenizer": "*",
"psalm/phar": "^4.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-1.x": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mike van Riel",
"email": "me@mikevanriel.com"
}
],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
},
"time": "2022-03-15T21:29:03+00:00"
},
{
"name": "phpspec/prophecy",
"version": "v1.15.0",

12
lang/en/admin-setting.php

@ -0,0 +1,12 @@
<?php
return [
'labels' => [
'AdminSetting' => 'AdminSetting',
'admin-setting' => 'AdminSetting',
],
'fields' => [
'value' => 'value',
],
'options' => [
],
];
Loading…
Cancel
Save