package variable import ( "github.com/casbin/casbin/v2" "go.uber.org/zap" "gorm.io/gorm" "goskeleton/app/global/my_errors" "goskeleton/app/utils/snow_flake/snowflake_interf" "goskeleton/app/utils/yml_config/ymlconfig_interf" "log" "os" "strings" ) // ginskeleton 封装的全局变量全部支持并发安全,请放心使用即可 // 开发者自行封装的全局变量,请做好并发安全检查与确认 var ( BasePath string // 定义项目的根目录 EventDestroyPrefix = "Destroy_" // 程序退出时需要销毁的事件前缀 ConfigKeyPrefix = "Config_" // 配置文件键值缓存时,键的前缀 DateFormat = "2006-01-02 15:04:05" // 设置全局日期时间格式 // 全局日志指针 ZapLog *zap.Logger // 全局配置文件 ConfigYml ymlconfig_interf.YmlConfigInterf // 全局配置文件指针 ConfigGormv2Yml ymlconfig_interf.YmlConfigInterf // 全局配置文件指针 //gorm 数据库客户端,如果您操作数据库使用的是gorm,请取消以下注释,在 bootstrap>init 文件,进行初始化即可使用 GormDbMysql *gorm.DB // 全局gorm的客户端连接 GormDbSqlserver *gorm.DB // 全局gorm的客户端连接 GormDbPostgreSql *gorm.DB // 全局gorm的客户端连接 //雪花算法全局变量 SnowFlake snowflake_interf.InterfaceSnowFlake //websocket WebsocketHub interface{} WebsocketHandshakeSuccess = `{"code":200,"msg":"ws连接成功","data":""}` WebsocketServerPingMsg = "Server->Ping->Client" //casbin 全局操作指针 Enforcer *casbin.SyncedEnforcer // 用户自行定义其他全局变量 ↓ ) func init() { // 1.初始化程序根目录 if curPath, err := os.Getwd(); err == nil { // 路径进行处理,兼容单元测试程序程序启动时的奇怪路径 if len(os.Args) > 1 && strings.HasPrefix(os.Args[1], "-test") { BasePath = strings.Replace(strings.Replace(curPath, `\test`, "", 1), `/test`, "", 1) } else { BasePath = curPath } } else { log.Fatal(my_errors.ErrorsBasePath) } }