heyehang / fast-hyperf
LinkCloud Fast Hyperf
dev-master
2023-11-15 03:37 UTC
Requires
- php: >=8.0
- firebase/php-jwt: ^5.0.0
- hyperf/cache: 3.0.*
- hyperf/command: 3.0.*
- hyperf/config: 3.0.*
- hyperf/crontab: 3.0.*
- hyperf/db-connection: 3.0.*
- hyperf/framework: 3.0.*
- hyperf/http-server: 3.0.*
- hyperf/logger: 3.0.*
- hyperf/process: 3.0.*
- hyperf/redis: 3.0.*
- hyperf/snowflake: 3.0.*
- marc-mabe/php-enum: ~4.0
- swlib/saber: ^1.0
- yiisoft/var-dumper: ^1.2
This package is auto-updated.
Last update: 2024-10-11 09:53:01 UTC
README
基于Hyperf框架二次封装的快速开发脚手架
说明:
本项目封装沿用了Java风格的对象风格,不喜者,请绕路
安装方式
普通安装
composer require link-cloud/fast-hyperf
模板安装
composer create-project link-cloud/fast-hyperf-demo demo
模板创建
常用命令
快速生成业务代码
php bin/hyperf.php gen:code -p /app -P default -a /api/v1
此命令依赖
config/autoload/generate.php配置文件,可参考demo项目
生成的代码结构说明:
多语言翻译文件生成
可以将错误码和枚举类的翻译文件自动生成
php bin/hyperf.php translate:gen
此命令依赖
config/autoload/generate.php配置文件,可参考demo项目
常用组件
枚举类
基于 marc-mabe/php-enum
封装的枚举类对象,方便枚举类传递和定义,再也不用到处问代码里的1234是什么意思了
枚举类定义
use LinkCloud\Fast\Hyperf\Annotations\EnumMessage; use LinkCloud\Fast\Hyperf\Framework\Entity\ErrorCode; /** * @method static BaseStatus NORMAL() * @method static BaseStatus FROZEN() */ class BaseStatus extends BaseEnum { #[EnumMessage(message: '正常')] public const NORMAL = 1; #[EnumMessage(message: '冻结')] public const FROZEN = 2; }
使用:
$status = BaseStatus::NORMAL(); var_dump($status->getValue()); // 获取数字值 var_dump($status->getMessage()); // 获取关联信息 // 函数定义时可指定类型 function judge(BaseStatus $status) { } judge(BaseStatus::NORMAL()); // 函数传参 // 类的成员变量定义 class Object { protected BaseStatus $status; }
基本对象
框架定义了BaseObject
对象,用于方便在数组和对象之间互相转换
定义一个对象
use LinkCloud\Fast\Hyperf\Common\BaseObject; use LinkCloud\Fast\Hyperf\Annotations\ArrayType; class User extends BaseObject { public string $userId; public string $userName; public UserStatus $status; #[ArrayType(valueType: UserBalance::class)] public array $balances; } class UserBalance extends BaseObject { public string $amount; } // 从数组转换过来 $user = new User([ 'user_id' => 1, 'user_name' => 'account', 'status' => 1, 'balances' => [ ['amount' => '100'], ['amount' => '200'], ], ]); var_dump($user->userId); var_dump($user->balances); // 转回数组 var_dump($user->toArray());
ArrayType
是一个新的注解,当需要声明一个指定类型的数组时,可以使用此注解定义
#[ArrayType(valueType: UserBalance::class)] public array $balances;
Swagger接口文档
服务启动后,可直接访问 http://127.0.0.1:9501/swagger
查看swagger文档页面。
可通过配置文件关闭此功能