Categorygithub.com/mops1k/go-mvc
modulepackage
0.0.2
Repository: https://github.com/mops1k/go-mvc.git
Documentation: pkg.go.dev

# 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
  • Добавить возможность работы с сессиями

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

Update custom http hanler.
Add middleware to http server.
Run mvc application.