Skip to content
/ pine Public

轻量级高性能GO语言开发框架。支持MVC、依赖注入、动态返回值、中间件、 路由分组、子域名路由注册管理。 组件基于接口实现,可以自行实现或定义组件。

License

Notifications You must be signed in to change notification settings

xiusin/pine

Repository files navigation

pine

PineFramework 一个轻量级高性能GO语言开发框架。支持MVC、依赖注入、动态返回值、中间件、 路由分组、子域名路由注册管理。 组件基于接口实现,可以自行实现或定义组件。

动态返回值

此功能只能用于mvc模式,根据方法自动兼容显示内容

  1. 如果没有返回值,并且没有渲染过模板,会自动调用模板渲染方法. 查找路径为 ControllerName/MethodName
  2. 如果返回inerface{} ,会自动打印部分能兼容的数据,返回结果为字符串类型 text/html
  3. 如果返回一个非nil的错误,会直接panic(不包括复合类型里的error)
  4. 如果返回 string,int 等类型,显示为text
  5. 实现controller的结构属性全局静态变量共享(加锁/引用),需要共享的参数(名称以share切为引用类型)

di

(发现有些数据无法解析出来pkgPath,现在只有类型名称)服务注册名称更为any, 如果注册服务类型实例,自动绑定字符串文件路径和pkgPathcontroller自动解析参数是对比参数pkgPath,以确定是否为真实参数类型。

路由

  • 可打印路由如下

$ go run main.go
METHOD | PATH | ALIASES | NAME     | HANDLE
------ | ---- | ------- | ----     | -------
GET    | /    |         | rootPath | path/to/routes_error/actions.HomeHandler

TODO

  • 支持非Post或Get开始的方法名称,支持任何方式请求
  • 自动反射出来的路由需要修改成小驼峰名称
  • 细化input(参照laravel), 抽象convert结构体, 处理各种数据转换.
  • 模板引擎支持传入文件系统对象
  • 实现路由占位符用于自定义路由替换规则
  • 缓存驱动github.com/syndtr/goleveldb/leveldb

About

轻量级高性能GO语言开发框架。支持MVC、依赖注入、动态返回值、中间件、 路由分组、子域名路由注册管理。 组件基于接口实现,可以自行实现或定义组件。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published