https://github.com/mops1k/simplemvc
Golang simple mvc implementation with orm, routing, events
https://github.com/mops1k/simplemvc
golang mvc-application routing-controllers
Last synced: 19 days ago
JSON representation
Golang simple mvc implementation with orm, routing, events
- Host: GitHub
- URL: https://github.com/mops1k/simplemvc
- Owner: mops1k
- Created: 2020-04-29T10:24:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-06T11:21:41.000Z (over 5 years ago)
- Last Synced: 2025-01-12T08:16:15.416Z (11 months ago)
- Topics: golang, mvc-application, routing-controllers
- Language: Go
- Size: 1.54 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SimpleMVC
**SimpleMVC** - это набор инструментов организующих MVC(model-view-controller) структуру приложения для web сервисов.
_Данный проект пришется "для себя" и не претендует на широкое распространение в сообществе. Все решения сделанные в проекте стоит расценивать как процесс самообучения языку GO._
## Простая документация
#### Как добавить контроллер
Для того, чтобы создать новый контроллер, необходимо создать файл имплементирующий интерфейс `SimpleMV/app/service.Controller`.
Для этого можно нужно использовать `SimpleMVC/app/service.BaseController` чтобы не было необходимости в каждом новом контроллере писать логику интерфейса.
Идеология контроллеров в том, чтобы использовать 1 контроллер = 1 действие.
Для примера можно посмотреть как написан `SimpleMVC/app/controller.IndexController`
После создания контроллера необходимо добавить его роутинг в файл: `config/routing.yaml` (см. как это сделано для `IndexController`)
Для того чтобы наш контроллер был обработан системой и добавился в роутинг, необходимо добавить его в `config/controllers.go`
#### События
На данный момент система поддерживает следующие события:
- http.on_request
- http.on_response
#### Конфигурация
Все файлы конфигурации с расширениями `yaml`, `yml` в папке `config` подключаются автоматически
Парсинг конфигурации сделан посредством пакета `Viper`
#### Шаблонизация
Шаблонизация работает через **Jet Template Engine** (https://github.com/CloudyKit/jet)
В качестве моста используется структура `SimpleMVC/app/service.template`