# README
go-mvc
Библиотека для создания MVC веб-приложений на Golang. Эволюция SimpleMVC приложения. Библиотека разрабатывается для личных нужд
Быстрый старт
Создайте пакет с поддержкой модулей go.
- В
main.go
напишите следующее:
package main
import (
"github.com/mops1k/go-mvc"
_ "<Your package>/config"
)
func main() {
mvc.Run()
}
- В папке
config
создайте файлapp_config.yaml
следующего содержания:
server:
host: localhost
port: 8082
timeout:
read: 10
write: 15
idle: 30
tls:
key_file: ~
cert_file: ~
database:
default:
enabled: false
type: sqlite3 # sqlite3, mysql, mssql, postgres
url: database.db
translation:
default: ru
fallback: ru
В данной папке все yaml
и yml
файлы собираются конфигурацией автоматически
- Создайте папку
app/controller
и в ней файлindex.go
следующего содержания:
package controller
import (
"github.com/mops1k/go-mvc/http"
)
type IndexController struct {
http.BaseController
PathInfo interface{} `path:"/" name:"index" methods:"GET"`
}
func (i *IndexController) Action(c *http.Context) (string, error) {
return i.RenderString("Hello, {{ name }}!", map[string]interface{}{"name": "World"}), nil
}
- В папке config создайте файл
controllers.go
следующего содержания:
package config
import (
"github.com/mops1k/go-mvc/http"
"<Your package>/app/controller"
)
func init() {
// Add your controllers here
http.Controllers.Add(&controller.IndexController{})
}
- Выполните:
go mod vendor
go build .
[WIP]Документация
Здесь пока пусто
TODO List
- Уйти от жестких зависимостей
- Сделать абстракцию для os (необходимо для тестов)
- Написать тесты
- Переписать парсер ввода команд для работы с flag
- Написать генератор проекта
- Добавить возможность запуска TLS сервера
- Внедрить event dispatcher
- Добавить возможность работы с сессиями
# Functions
Update custom http hanler.
Add middleware to http server.
Run mvc application.