phx

package module
v0.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2023 License: MIT Imports: 21 Imported by: 0

README ΒΆ

🐦 Phx

A little, highly opinated framework to create complete web apps.

Documentation ΒΆ

Index ΒΆ

Constants ΒΆ

This section is empty.

Variables ΒΆ

This section is empty.

Functions ΒΆ

func ParseForm ΒΆ

func ParseForm(req *http.Request, dst interface{})

ParseForm parses req.Form and then serializes the form data to the dst struct using reflection. The form names should match to the 'html' tag or, if its not setted, to the field name. ParseForm only supports serializing data to one-depth structs. Example, using this struct as target:

type MyStruct struct {
		A bool,
		B int `html:"pagination.currentPage"`
}

And having this serialized form:

"A=false&pagination.currentPage=2"

Calling ParseForm like this (NOTE THAT A POINTER TO THE STRUCT IS BEING PASSED):

var s MyStruct phx.ParseForm(req, &s)

It will result to this fullfilled struct:

{ A = false, B: 2 }

The supported field types are: int, int8, int16, int32, int64, float32, float64, bool and string

func PrintLogo(logoFile string)

PrintLogo takes a file path and prints your fancy ascii logo. It will fail if your file is not found.

Types ΒΆ

type Builder ΒΆ

type Builder interface{}

Builder is a function that expects anything and retuns the type that builds. The type cant be func() interface{} cause some errors appears in runtime. So it's represented as an interface.

type Context ΒΆ added in v0.0.15

type Context struct {
	Req *http.Request
	Res http.ResponseWriter
	// contains filtered or unexported fields
}

func (*Context) GetUser ΒΆ added in v0.0.15

func (ctx *Context) GetUser() session.User

func (*Context) Json ΒΆ added in v0.0.15

func (ctx *Context) Json(status int, data interface{})

func (*Context) Redirect ΒΆ added in v0.0.15

func (ctx *Context) Redirect(to string) func() http.HandlerFunc

func (*Context) Render ΒΆ added in v0.0.15

func (ctx *Context) Render(status int, parsed string, vm interface{})

func (*Context) RenderWithErrors ΒΆ added in v0.0.15

func (ctx *Context) RenderWithErrors(status int, parsed string, vm interface{}, formErrors map[string]string)

type CorsConfig ΒΆ added in v0.0.15

type CorsConfig struct {
	AllowMethods string
	AllowOrigin  string
}

type Handler ΒΆ added in v0.0.15

type Handler func(c *Context)

type Injector ΒΆ

type Injector struct {
	// contains filtered or unexported fields
}

Injector is an automated dependency injector inspired in Sping's DI. It will detect which builder to call using its return type. If the builder haver params, it will fullfill that params calling other builders that provides its types.

func NewInjector ΒΆ

func NewInjector() *Injector

NewInjector with default values

func (Injector) Add ΒΆ

func (injector Injector) Add(builder Builder)

Add a builder to the dependency injector.

func (Injector) CallBuilder ΒΆ

func (injector Injector) CallBuilder(builder Builder) interface{}

CallBuilder injecting all parameters with provided builders. If some parameter type cannot be found, it will panic

func (Injector) Get ΒΆ

func (injector Injector) Get(name interface{}) interface{}

Get returns a builded dependency

func (Injector) GetByType ΒΆ

func (injector Injector) GetByType(name reflect.Type) interface{}

GetByType returns a builded dependency identified by type

func (Injector) PopulateStruct ΒΆ

func (injector Injector) PopulateStruct(userStruct interface{})

PopulateStruct fills a struct with the implementations that the injector can create. Make sure you pass a reference and not a value

func (Injector) ResolveHandler ΒΆ

func (injector Injector) ResolveHandler(builder Builder) Handler

ResolveHandler created by a builder

func (Injector) ShowAvailableBuilders ΒΆ

func (injector Injector) ShowAvailableBuilders()

ShowAvailableBuilders prints all registered builders.

type Middleware ΒΆ

type Middleware func(Handler) Handler

type PhxConfig ΒΆ added in v0.0.15

type PhxConfig struct {
	CsrfExpiration time.Duration
	Localizer      *localizer.LocalizerStore
	Cors           CorsConfig
	EnableCors     bool
	StaticPath     string
	EnableStatic   bool
	EnableCsrf     bool
}

type Router ΒΆ added in v0.0.15

type Router struct {
	// contains filtered or unexported fields
}

func NewRouter ΒΆ added in v0.0.15

func NewRouter() *Router

func NewRouterFromOther ΒΆ added in v0.0.15

func NewRouterFromOther(r *Router) *Router

func NewRouterWithConfig ΒΆ added in v0.0.15

func NewRouterWithConfig(config PhxConfig) *Router

func (*Router) Add ΒΆ added in v0.0.15

func (r *Router) Add(builder Builder)

func (*Router) AddDefaultTemplateFunctions ΒΆ added in v0.0.15

func (r *Router) AddDefaultTemplateFunctions()

func (*Router) Bootstrap ΒΆ added in v0.0.15

func (r *Router) Bootstrap(inj *Injector)

func (*Router) Delete ΒΆ added in v0.0.15

func (r *Router) Delete(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Get ΒΆ added in v0.0.15

func (r *Router) Get(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Handle ΒΆ added in v0.0.15

func (r *Router) Handle(method, pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Head ΒΆ added in v0.0.15

func (r *Router) Head(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Options ΒΆ added in v0.0.15

func (r *Router) Options(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Parse ΒΆ added in v0.0.15

func (r *Router) Parse(name string, patterns ...string)

func (*Router) ParsePartial ΒΆ added in v0.0.15

func (r *Router) ParsePartial(name string, patterns ...string)

func (*Router) Patch ΒΆ added in v0.0.15

func (r *Router) Patch(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) PopulateStruct ΒΆ added in v0.0.15

func (r *Router) PopulateStruct(s interface{})

func (*Router) Post ΒΆ added in v0.0.15

func (r *Router) Post(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Put ΒΆ added in v0.0.15

func (r *Router) Put(pattern string, builder Builder, middlewares ...Middleware)

func (Router) Run ΒΆ added in v0.0.15

func (r Router) Run(address string)

func (*Router) ShowAvailableBuilders ΒΆ added in v0.0.15

func (r *Router) ShowAvailableBuilders()

func (*Router) Trace ΒΆ added in v0.0.15

func (r *Router) Trace(pattern string, builder Builder, middlewares ...Middleware)

func (*Router) Use ΒΆ added in v0.0.15

func (r *Router) Use(middleware Middleware)

type SessionAuth ΒΆ added in v0.0.15

type SessionAuth struct {
	// contains filtered or unexported fields
}

func NewSessionAuth ΒΆ added in v0.0.15

func NewSessionAuth(sessionManager *session.Manager) SessionAuth

func NewSessionAuthWithRedirection ΒΆ added in v0.0.15

func NewSessionAuthWithRedirection(sessionManager *session.Manager, redirectURL string) SessionAuth

func (SessionAuth) Admin ΒΆ added in v0.0.15

func (authMiddle SessionAuth) Admin(next Handler) Handler

func (SessionAuth) Authorize ΒΆ added in v0.0.15

func (authMiddle SessionAuth) Authorize(next Handler) Handler

func (SessionAuth) AuthorizeRoles ΒΆ added in v0.0.15

func (authMiddle SessionAuth) AuthorizeRoles(roles []core.Role, next Handler) Handler

type ViewModel ΒΆ

type ViewModel struct {
	Model      interface{}
	Localizer  localizer.Localizer
	FormErrors map[string]string
	CsrfToken  string
}

func (ViewModel) GetFormError ΒΆ

func (vm ViewModel) GetFormError(key string) string

func (ViewModel) HaveFormError ΒΆ

func (vm ViewModel) HaveFormError(key string) bool

func (ViewModel) Localize ΒΆ

func (vm ViewModel) Localize(key string) string

Directories ΒΆ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL