Welcome to my blog :)

Create a unique and beautiful blog quickly and easily.

qbhy

数据库组件

Goal-web/database goal-web/database goal 框架的数据库组件,当然你也可以在 goal 之外的框架使用他。 目前数据库组件暂时不能使用关联关系,你可以用 WhereExists 来代替 go get github.com/goal-web/database 使用 - usage goal 的脚手架自带了绝大多数开发一个 web 应用的所需要的功能和组件,当然包括了数据库组件。一般情况下,我们只需要在 .env 修改自己的数据库配置即可,添加数据库连接可以 config/database.go 修改 Connections 属性。 默认情况下,config/database.go 配置文件像下面那样,默认添加了 sqlite、MySQL、postgresSql 三个数据库连接的配置 和 Laravel 不同的是,goal 把 redis 配置独立出去了,因为 redis 也是一个独立的模块,不想让 redis 依赖 database package config import ( "github.com/goal-web/contracts"…

Continue reading...
qbhy

QueryBuilder - 查询构造器组件

Goal/QueryBuilder Goal 的数据库查询构造器为创建和运行数据库查询提供了一个方便的接口。它可以用于支持大部分数据库操作,并与 Goal 支持的所有数据库系统完美运行。并且大量参考了 Laravel 的查询构造器设计,你几乎可以在这个库找到所有与 Laravel 对应的方法。 Goal 的查询构造器实现了类似 PDO 参数绑定的形式,来保护您的应用程序免受 SQL 注入攻击。因此不必清理因参数绑定而传入的字符串。查询构造器会返回你想要的 SQL 语句以及绑定参数。 $ go get github.com/goal-web/querybuilder 运行数据库查询 - usage 根据条件从表中检索出数据 - query 你可以使用 NewQuery 方法来开始查询。该方法为给定的表返回一个查询构造器实例,允许你在查询上链式调用更多的约束,最后使用 get 方法获取结果: package querybuilder import ( "fmt" ) func TestSimpleQueryBuilder() { query := NewQuery("users"). Where("name",…

Continue reading...
qbhy

Auth 组件

Goal-web/auth goal-web/auth goal 框架的用户认证组件,你可以在 http、websocket 或者其他环境使用。 $ go get github.com/goal-web/auth 使用 - usage goal 的脚手架自带了绝大多数开发一个 web 应用的所需要的功能和组件,当然这也包括了认证组件。一般情况下,我们只需要在 .env 修改自己的认证配置即可,比如 jwt 驱动的 secret、session 驱动的 session_key。 默认情况下,config/auth.go 配置文件像下面那样,默认添加了 jwt、session 两个守卫配置 package config import ( "github.com/goal-web/auth" "github.com/goal-web/contracts" "github.com/goal-web/example/models" "github.com/golang-jwt/jwt" ) func init() { configs["auth"] = func(env contracts.Env) interface{}…

Continue reading...
qbhy

Goal 应用目录结构

app 应用代码 console 控制台相关代码 commands 定义命令行 kernel.go 默认 console 内核实现,可以在这里定义计划任务 dao 数据操作代码 events 事件定义 listeners 事件监听者 jobs 任务代码,用于投递到 queue http web相关代码 controllers 控制器目录 middlewares 中间件目录 requests 自定义请求目录 sse 服务端事件推送相关代码及示例 models 数据模型定义 policies gate策略定义 services 微服务相关代码 providers 一些应用内的服务提供者 app.go 一些基本的应用初始化代码 gate.go 用于注册gate策略 micro.go 用于注册微服务 websocket ws相关代码和示例config…

Continue reading...
qbhy

Goal - 快速开始

要求 - requirements go 1.17+ make (可选) 下载 - download $ git clone https://github.com/goal-web/goal && cd goal 启动 - start $ make run # or $ go mod tidy && go run main.go run goal 程序编译后运行方式是 ./goal run ,run 只是一个定义好的 goal cli 命令 $ curl…

Continue reading...