phx

package module
v0.0.20 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 PrintLogo(logoFile string)

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

func Redirect ΒΆ

func Redirect(to string) func() Handler

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) ChangeLangauge ΒΆ added in v0.0.18

func (ctx *Context) ChangeLangauge(to string)

func (*Context) GetCurrentLanguage ΒΆ added in v0.0.18

func (ctx *Context) GetCurrentLanguage() string

func (*Context) GetParam ΒΆ added in v0.0.17

func (ctx *Context) GetParam(name string) string

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) ParseForm ΒΆ added in v0.0.18

func (ctx *Context) ParseForm(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 (*Context) Redirect ΒΆ added in v0.0.15

func (ctx *Context) Redirect(to string)

func (*Context) RedirectCode ΒΆ added in v0.0.18

func (ctx *Context) RedirectCode(to string, code int)

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)

func (*Context) String ΒΆ added in v0.0.18

func (ctx *Context) String(data string, a ...any)

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 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() *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()

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)

func (*Router) UseCors ΒΆ added in v0.0.19

func (r *Router) UseCors(methods, origin string)

func (*Router) UseCsrf ΒΆ added in v0.0.19

func (r *Router) UseCsrf(expires time.Duration)

func (*Router) UseLocalization ΒΆ added in v0.0.19

func (r *Router) UseLocalization(files embed.FS, sharedKey, errorsKey string)

func (*Router) UseStatic ΒΆ added in v0.0.19

func (r *Router) UseStatic(path string)

func (*Router) UseTemplate ΒΆ added in v0.0.19

func (r *Router) UseTemplate(fs embed.FS)

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