centras / php-common
微服务的通用包
dev-main
2022-08-18 06:42 UTC
Requires
- guzzlehttp/guzzle: ^7.3
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-30 02:00:09 UTC
README
PHP-Common - 包含所有微服务通用功能的包。
功能
- 实用工具
- 异常检查和处理
- 异常消息
- 对 Guzzle 的封装
- 查询构建器 QueryBuilder
内容
安装
- 在您的项目根目录下创建
auth.json
文件。添加access-token
。更多信息请参阅 此处。别忘了将文件auth.json
添加到gitignore
。
{ "gitlab-token": { "git.cic.kz": "your_token" } }
- 执行以下命令
composer config gitlab-domains git.cic.kz
composer config repositories.git.cic.kz/86 '{"type": "composer", "url": "https://git.cic.kz/api/v4/group/86/-/packages/composer/packages.json"}'
执行命令后,文件 composer.json
应出现以下记录
"config": { ... "gitlab-domains": ["git.cic.kz"] }
"repositories": [{ "type" : "composer", "url" : "https://git.cic.kz/api/v4/group/86/-/packages/composer/packages.json" }],
- 通过 composer 安装包
$ composer req centras/php-common:1.0.1
- 转到
bootstrap/app.php
并将标准Handler
替换为phpcommon/Handler/Handler::class
$app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, phpcommon\Handler\Handler::class );
- 在
bootstrap/app.php
中注册全局 Middleware(如有必要)
$app->middleware([ phpcommon\Middleware\AccessLevelMiddleware::class, phpcommon\Middleware\UserMiddleware::class ]);
- 在 app/Console/Kernel.php 中注册 Heartbeat 的 Schedule
$schedule->call(function () { Scheduler::heartbeat(); })->everyMinute();
不要忘记导入 Scheduler (use phpcommon\Utils\Scheduler)
QueryBuilder
查询构建器 - 用于过滤、分页、排序由查询返回的数据的实用工具。构建器接受多个静态参数。
列
允许选择模型特定的列。如果指定了错误的列,将抛出相应的异常。
参数: columns
- /users?columns=email,uuid,first_name
"data": { "email": "Emanuel.Schowalter@hotmail.com", "uuid": "113eb3b3-2554-464d-9224-62e61c930f1a" "first_name": "Emanuel" }
列
允许选择模型特定的列。如果指定了错误的列,将抛出相应的异常。
参数: columns
- /users?columns=email,uuid,first_name
{ "email": "Emanuel.Schowalter@hotmail.com", "uuid": "113eb3b3-2554-464d-9224-62e61c930f1a" "first_name": "Emanuel" }
类似的特性也适用于关联依赖。
- /users?columns=email,social_networks.name,social_networks.url
{ "email": "Emanuel.Schowalter@hotmail.com", "social_networks": [ { "name": "Telegram", "url": "https://telegram.org" } ] }
包含
允许选择模型特定的依赖。如果指定了错误的关联,将抛出相应的异常。
参数: includes
- /users?includes=social_networks
{ "email": "Emanuel.Schowalter@hotmail.com", "uuid": "113eb3b3-2554-464d-9224-62e61c930f1a" "first_name": "Emanuel", "social_networks": [ { "id": 1, "name": "Twitter", "url": "https://twitter.com/" } ] }
限制
限制可以确定每页的记录数。默认值:15条记录。
参数: limit
- /users?limit=5
页码
与限制一起使用,定义页码。允许将大量数据分成具有固定记录数的页面。默认值:15条记录。
参数: page
- /users?page=1
排序
允许确定记录的顺序。
参数: order_by
- /users?order_by=id:asc,uuid:desc
过滤
允许过滤输入数据。
参数: 动态 参数键是列名。
过滤查询示例
- /users?first_name=Emanuel
- /users?first_name!=Emanuel
- /users?first_name=*uel
- /users?first_name=Em*
- /users?first_name=*an*
- /users?balance=1.546
- /users?balance=<2.55
- /users?balance=>1.699
- /users?balance<2.45
- /users?balance>1.324
- /users?first_name=[null]
- /users?first_name!=[null]