mirror of
https://github.com/kataras/iris.git
synced 2025-03-15 08:06:27 +01:00
Merge pull request #9 from kataras/master
Update Former-commit-id: 88f54d55e219f60348588107444e0bfb6a306bb6
This commit is contained in:
commit
e0b5a6f820
3
.github/ISSUE_TEMPLATE.md
vendored
3
.github/ISSUE_TEMPLATE.md
vendored
|
@ -4,6 +4,5 @@ Examples for the Iris project can be found at
|
||||||
Documentation for the Iris project can be found at
|
Documentation for the Iris project can be found at
|
||||||
<https://godoc.org/github.com/kataras/iris>.
|
<https://godoc.org/github.com/kataras/iris>.
|
||||||
|
|
||||||
Love iris? Please consider supporting our collective:
|
Love iris? Please consider supporting the project:
|
||||||
👉 https://opencollective.com/iris/donate
|
|
||||||
👉 https://iris-go.com/donate
|
👉 https://iris-go.com/donate
|
|
@ -77,24 +77,15 @@ If you want to be part of this and you've time for collaboration, please open a
|
||||||
|
|
||||||
All new contributors of that book will receive prizes!
|
All new contributors of that book will receive prizes!
|
||||||
|
|
||||||
## Financial contributions
|
|
||||||
|
|
||||||
We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/iris).
|
|
||||||
Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
|
|
||||||
|
|
||||||
### Contributors
|
### Contributors
|
||||||
|
|
||||||
Thank you to all the people who have already contributed to iris!
|
Thank you to all the people who have already <a href="graphs/contributors">contributed</a> to Iris!
|
||||||
<a href="graphs/contributors"><img src="https://opencollective.com/iris/contributors.svg?width=890" /></a>
|
|
||||||
|
|
||||||
### Backers
|
### Backers
|
||||||
|
|
||||||
Thank you to all our backers! [Become a backer](https://opencollective.com/iris#backer)
|
Thank you to all our backers! [Become a backer](https://iris-go.com/donate)
|
||||||
|
|
||||||
<a href="https://opencollective.com/iris#backers" target="_blank"><img src="https://opencollective.com/iris/backers.svg?width=890"></a>
|
<a href="https://iris-go.com/donate"><img src="https://iris-go.com/backers.svg?v=1"/></a>
|
||||||
|
|
||||||
### Sponsors
|
### Sponsors
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,10 @@ Developers are not forced to upgrade if they don't really need it. Upgrade whene
|
||||||
|
|
||||||
**How to upgrade**: Open your command-line and execute this command: `go get -u github.com/kataras/iris` or let the automatic updater do that for you.
|
**How to upgrade**: Open your command-line and execute this command: `go get -u github.com/kataras/iris` or let the automatic updater do that for you.
|
||||||
|
|
||||||
|
# Th, 15 February 2018 | v10.2.1
|
||||||
|
|
||||||
|
Fix subdomains' `StaticEmbedded` & `StaticWeb` not found errors, as reported by [@speedwheel](https://github.com/speedwheel) via [facebook page's chat](https://facebook.com/iris.framework).
|
||||||
|
|
||||||
# Th, 08 February 2018 | v10.2.0
|
# Th, 08 February 2018 | v10.2.0
|
||||||
|
|
||||||
A new minor version family because it contains a **BREAKING CHANGE** and a new `Party#Reset` function.
|
A new minor version family because it contains a **BREAKING CHANGE** and a new `Party#Reset` function.
|
||||||
|
|
|
@ -17,6 +17,12 @@
|
||||||
|
|
||||||
**Πώς να αναβαθμίσετε**: Ανοίξτε την γραμμή εντολών σας και εκτελέστε αυτήν την εντολή: `go get -u github.com/kataras/iris` ή αφήστε το αυτόματο updater να το κάνει αυτό για σας.
|
**Πώς να αναβαθμίσετε**: Ανοίξτε την γραμμή εντολών σας και εκτελέστε αυτήν την εντολή: `go get -u github.com/kataras/iris` ή αφήστε το αυτόματο updater να το κάνει αυτό για σας.
|
||||||
|
|
||||||
|
# Th, 15 February 2018 | v10.2.1
|
||||||
|
|
||||||
|
Διόρθωση το οποίο αφορά 404 not found errors στα αρχεία που σερβίρονται από τα `StaticEmbedded` και `StaticWeb` των υποτομεών(subdomains), όπως αναφέρθηκε πριν λίγο από τον [@speedwheel](https://github.com/speedwheel) μέσω [της σελίδας μας στο facebook](https://facebook.com/iris.framework).
|
||||||
|
|
||||||
|
This history entry is not yet translated to Greek. Please read [the english version instead](https://github.com/kataras/iris/blob/master/HISTORY.md#th-15-february-2018--v1021).
|
||||||
|
|
||||||
# Th, 08 February 2018 | v10.2.0
|
# Th, 08 February 2018 | v10.2.0
|
||||||
|
|
||||||
This history entry is not yet translated to Greek. Please read [the english version instead](https://github.com/kataras/iris/blob/master/HISTORY.md#th-08-february-2018--v1020).
|
This history entry is not yet translated to Greek. Please read [the english version instead](https://github.com/kataras/iris/blob/master/HISTORY.md#th-08-february-2018--v1020).
|
||||||
|
|
|
@ -17,6 +17,10 @@
|
||||||
|
|
||||||
**如何升级**: 打开命令行执行以下命令: `go get -u github.com/kataras/iris` 或者等待自动更新。
|
**如何升级**: 打开命令行执行以下命令: `go get -u github.com/kataras/iris` 或者等待自动更新。
|
||||||
|
|
||||||
|
# Th, 15 February 2018 | v10.2.1
|
||||||
|
|
||||||
|
This history entry is not yet translated to Chinese. Please read [the english version instead](https://github.com/kataras/iris/blob/master/HISTORY.md#th-15-february-2018--v1021).
|
||||||
|
|
||||||
# 2018 2月8号 | v10.2.0 版本更新
|
# 2018 2月8号 | v10.2.0 版本更新
|
||||||
|
|
||||||
新的小版本, 因为它包含一个 **破坏性变动** 和一个新功能 `Party#Reset`
|
新的小版本, 因为它包含一个 **破坏性变动** 和一个新功能 `Party#Reset`
|
||||||
|
|
10
README.md
10
README.md
|
@ -1,8 +1,8 @@
|
||||||
# Iris Web Framework <a href="README_ZH.md"> <img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
# Iris Web Framework <a href="README_ZH.md"> <img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
||||||
|
|
||||||
<img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" />
|
<a href="https://iris-go.com"> <img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" /> </a>
|
||||||
|
|
||||||
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](_examples/) [](https://github.com/kataras/iris/releases)
|
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](https://iris-go.com/v10/recipe) [](https://github.com/kataras/iris/releases)
|
||||||
|
|
||||||
Iris is a fast, simple yet fully featured and very efficient web framework for Go.
|
Iris is a fast, simple yet fully featured and very efficient web framework for Go.
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ Learn what [others say about Iris](#support) and [star](https://github.com/katar
|
||||||
|
|
||||||
## Backers
|
## Backers
|
||||||
|
|
||||||
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/iris#backer)
|
Thank you to all our backers! 🙏 [Become a backer](https://iris-go.com/donate)
|
||||||
|
|
||||||
<a href="https://opencollective.com/iris#backers" target="_blank"><img src="https://opencollective.com/iris/backers.svg?width=890"></a>
|
<a href="https://iris-go.com/donate" target="_blank"><img src="https://iris-go.com/backers.svg?v=1"/></a>
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cat example.go
|
$ cat example.go
|
||||||
|
@ -106,7 +106,7 @@ _Updated at: [Tuesday, 21 November 2017](_benchmarks/README_UNIX.md)_
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
- [HISTORY](HISTORY.md#th-08-february-2018--v1020) file is your best friend, it contains information about the latest features and changes
|
- [HISTORY](HISTORY.md#th-15-february-2018--v1021) file is your best friend, it contains information about the latest features and changes
|
||||||
- Did you happen to find a bug? Post it at [github issues](https://github.com/kataras/iris/issues)
|
- Did you happen to find a bug? Post it at [github issues](https://github.com/kataras/iris/issues)
|
||||||
- Do you have any questions or need to speak with someone experienced to solve a problem at real-time? Join us to the [community chat](https://chat.iris-go.com)
|
- Do you have any questions or need to speak with someone experienced to solve a problem at real-time? Join us to the [community chat](https://chat.iris-go.com)
|
||||||
- Complete our form-based user experience report by clicking [here](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
- Complete our form-based user experience report by clicking [here](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
||||||
|
|
10
README_GR.md
10
README_GR.md
|
@ -1,8 +1,8 @@
|
||||||
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_ZH.md"> <img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a>
|
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_ZH.md"> <img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a>
|
||||||
|
|
||||||
<img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" />
|
<a href="https://iris-go.com"> <img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" /> </a>
|
||||||
|
|
||||||
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](_examples/) [](https://github.com/kataras/iris/releases)
|
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](https://iris-go.com/v10/recipe) [](https://github.com/kataras/iris/releases)
|
||||||
|
|
||||||
Το Iris είναι ένα γρήγορο, απλό αλλά και πλήρως λειτουργικό και πολύ αποδοτικό web framework για τη Go.
|
Το Iris είναι ένα γρήγορο, απλό αλλά και πλήρως λειτουργικό και πολύ αποδοτικό web framework για τη Go.
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@
|
||||||
|
|
||||||
## Yποστηρικτές
|
## Yποστηρικτές
|
||||||
|
|
||||||
Eυχαριστούμε όλους τους υποστηρικτές μας! 🙏 [Γίνετε ένας από αυτούς](https://opencollective.com/iris#backer)
|
Eυχαριστούμε όλους τους υποστηρικτές μας! 🙏 [Γίνετε ένας από αυτούς](https://iris-go.com/donate)
|
||||||
|
|
||||||
<a href="https://opencollective.com/iris#backers" target="_blank"><img src="https://opencollective.com/iris/backers.svg?width=890"></a>
|
<a href="https://iris-go.com/donate" target="_blank"><img src="https://iris-go.com/backers.svg?v=1"/></a>
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cat example.go
|
$ cat example.go
|
||||||
|
@ -108,7 +108,7 @@ _Η τελευταία ενημέρωση έγινε την [Τρίτη, 21 Νο
|
||||||
|
|
||||||
## Υποστήριξη
|
## Υποστήριξη
|
||||||
|
|
||||||
- To [HISTORY](HISTORY_GR.md#th-08-february-2018--v1020) αρχείο είναι ο καλύτερος σας φίλος, περιέχει πληροφορίες σχετικά με τις τελευταίες λειτουργίες(features) και αλλαγές
|
- To [HISTORY](HISTORY_GR.md#th-15-february-2018--v1021) αρχείο είναι ο καλύτερος σας φίλος, περιέχει πληροφορίες σχετικά με τις τελευταίες λειτουργίες(features) και αλλαγές
|
||||||
- Μήπως τυχαίνει να βρήκατε κάποιο bug; Δημοσιεύστε το στα [github issues](https://github.com/kataras/iris/issues)
|
- Μήπως τυχαίνει να βρήκατε κάποιο bug; Δημοσιεύστε το στα [github issues](https://github.com/kataras/iris/issues)
|
||||||
- Έχετε οποιεσδήποτε ερωτήσεις ή πρέπει να μιλήσετε με κάποιον έμπειρο για την επίλυση ενός προβλήματος σε πραγματικό χρόνο; Ελάτε μαζί μας στην [συνομιλία κοινότητας](https://chat.iris-go.com)
|
- Έχετε οποιεσδήποτε ερωτήσεις ή πρέπει να μιλήσετε με κάποιον έμπειρο για την επίλυση ενός προβλήματος σε πραγματικό χρόνο; Ελάτε μαζί μας στην [συνομιλία κοινότητας](https://chat.iris-go.com)
|
||||||
- Συμπληρώστε την αναφορά εμπειρίας χρήστη κάνοντας κλικ [εδώ](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
- Συμπληρώστε την αναφορά εμπειρίας χρήστη κάνοντας κλικ [εδώ](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
||||||
|
|
10
README_RU.md
10
README_RU.md
|
@ -1,8 +1,8 @@
|
||||||
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_ZH.md"><img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_ZH.md"><img width="20px" src="https://iris-go.com/images/flag-china.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
||||||
|
|
||||||
<img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" />
|
<a href="https://iris-go.com"> <img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" /> </a>
|
||||||
|
|
||||||
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](_examples/) [](https://github.com/kataras/iris/releases)
|
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](https://iris-go.com/v10/recipe) [](https://github.com/kataras/iris/releases)
|
||||||
|
|
||||||
Iris - это быстрая, простая, но полнофункциональная и очень эффективная веб-платформа для Go.
|
Iris - это быстрая, простая, но полнофункциональная и очень эффективная веб-платформа для Go.
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ Iris предоставляет красиво выразительную и у
|
||||||
|
|
||||||
## Сторонники
|
## Сторонники
|
||||||
|
|
||||||
Спасибо всем, кто поддерживал нас! 🙏 [Поддержать нас](https://opencollective.com/iris#backer)
|
Спасибо всем, кто поддерживал нас! 🙏 [Поддержать нас](https://iris-go.com/donate)
|
||||||
|
|
||||||
<a href="https://opencollective.com/iris#backers" target="_blank"><img src="https://opencollective.com/iris/backers.svg?width=890"></a>
|
<a href="https://iris-go.com/donate" target="_blank"><img src="https://iris-go.com/backers.svg?v=1"/></a>
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cat example.go
|
$ cat example.go
|
||||||
|
@ -106,7 +106,7 @@ _Обновлено: [Вторник, 21 ноября 2017 г.](_benchmarks/READ
|
||||||
|
|
||||||
## Поддержка
|
## Поддержка
|
||||||
|
|
||||||
- Файл [HISTORY](HISTORY.md#th-08-february-2018--v1020) - ваш лучший друг, он содержит информацию о последних особенностях и всех изменениях
|
- Файл [HISTORY](HISTORY.md#th-15-february-2018--v1021) - ваш лучший друг, он содержит информацию о последних особенностях и всех изменениях
|
||||||
- Вы случайно обнаружили ошибку? Опубликуйте ее на [Github вопросы](https://github.com/kataras/iris/issues)
|
- Вы случайно обнаружили ошибку? Опубликуйте ее на [Github вопросы](https://github.com/kataras/iris/issues)
|
||||||
- У Вас есть какие-либо вопросы или Вам нужно поговорить с кем-то, кто бы смог решить Вашу проблему в режиме реального времени? Присоединяйтесь к нам в [чате сообщества](https://chat.iris-go.com)
|
- У Вас есть какие-либо вопросы или Вам нужно поговорить с кем-то, кто бы смог решить Вашу проблему в режиме реального времени? Присоединяйтесь к нам в [чате сообщества](https://chat.iris-go.com)
|
||||||
- Заполните наш отчет о пользовательском опыте на основе формы, нажав [здесь](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
- Заполните наш отчет о пользовательском опыте на основе формы, нажав [здесь](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
||||||
|
|
10
README_ZH.md
10
README_ZH.md
|
@ -1,8 +1,8 @@
|
||||||
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
# Iris Web Framework <a href="README.md"> <img width="20px" src="https://iris-go.com/images/flag-unitedkingdom.svg?v=10" /></a> <a href="README_RU.md"><img width="20px" src="https://iris-go.com/images/flag-russia.svg?v=10" /></a> <a href="README_GR.md"><img width="20px" src="https://iris-go.com/images/flag-greece.svg?v=10" /></a>
|
||||||
|
|
||||||
<img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" />
|
<a href="https://iris-go.com"> <img align="right" width="169px" src="https://iris-go.com/images/icon.svg?v=a" title="logo created by @merry.dii" /> </a>
|
||||||
|
|
||||||
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](_examples/) [](https://github.com/kataras/iris/releases)
|
[](https://travis-ci.org/kataras/iris)<!-- [](https://github.com/kataras/iris/releases)--> [](http://goreportcard.com/report/kataras/iris) [](https://marketplace.visualstudio.com/items?itemName=kataras2006.iris)<!--[](https://github.com/kataras/iris/issues?q=is%3Aissue+is%3Aclosed)--> [](https://kataras.rocket.chat/channel/iris) [](https://iris-go.com/v10/recipe) [](https://github.com/kataras/iris/releases)
|
||||||
|
|
||||||
Iris 是一款超快、简洁高效的 Go 语言 Web开发框架。
|
Iris 是一款超快、简洁高效的 Go 语言 Web开发框架。
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ Iris 功能强大、使用简单,它将会是你下一个网站、API 服务
|
||||||
|
|
||||||
## 支持者
|
## 支持者
|
||||||
|
|
||||||
感谢所有的支持者! 🙏 [支持我们](https://opencollective.com/iris#backer)
|
感谢所有的支持者! 🙏 [支持我们](https://iris-go.com/donate)
|
||||||
|
|
||||||
<a href="https://opencollective.com/iris#backers" target="_blank"><img src="https://opencollective.com/iris/backers.svg?width=890"></a>
|
<a href="https://iris-go.com/donate" target="_blank"><img src="https://iris-go.com/backers.svg?v=1"/></a>
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cat example.go
|
$ cat example.go
|
||||||
|
@ -102,7 +102,7 @@ _更新于: [2017年11月21日星期二](_benchmarks/README_UNIX.md)_
|
||||||
|
|
||||||
## 支持
|
## 支持
|
||||||
|
|
||||||
- [更新记录](HISTORY_ZH.md#th-08-february-2018--v1020) 是您最好的朋友,它包含有关最新功能和更改的信息
|
- [更新记录](HISTORY_ZH.md#th-15-february-2018--v1021) 是您最好的朋友,它包含有关最新功能和更改的信息
|
||||||
- 你碰巧找到了一个错误? 请提交 [github issues](https://github.com/kataras/iris/issues)
|
- 你碰巧找到了一个错误? 请提交 [github issues](https://github.com/kataras/iris/issues)
|
||||||
- 您是否有任何疑问或需要与有经验的人士交谈以实时解决问题? [加入我们的聊天](https://chat.iris-go.com)
|
- 您是否有任何疑问或需要与有经验的人士交谈以实时解决问题? [加入我们的聊天](https://chat.iris-go.com)
|
||||||
- [点击这里完成我们基于表单的用户体验报告](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
- [点击这里完成我们基于表单的用户体验报告](https://docs.google.com/forms/d/e/1FAIpQLSdCxZXPANg_xHWil4kVAdhmh7EBBHQZ_4_xSZVDL-oCC_z5pA/viewform?usp=sf_link)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
10.2.0:https://github.com/kataras/iris/blob/master/HISTORY.md#th-08-february-2018--v1020
|
10.2.1:https://github.com/kataras/iris/blob/master/HISTORY.md#th-15-february-2018--v1021
|
|
@ -21,10 +21,30 @@ func MyHandler(ctx iris.Context) {
|
||||||
ctx.Writef("Received: %#v\n", c)
|
ctx.Writef("Received: %#v\n", c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Person struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// MyHandler2 reads a collection of Person from JSON post body.
|
||||||
|
func MyHandler2(ctx iris.Context) {
|
||||||
|
var persons []Person
|
||||||
|
err := ctx.ReadJSON(&persons)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
ctx.StatusCode(iris.StatusBadRequest)
|
||||||
|
ctx.WriteString(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.Writef("Received: %#+v\n", persons)
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := iris.New()
|
app := iris.New()
|
||||||
|
|
||||||
app.Post("/", MyHandler)
|
app.Post("/", MyHandler)
|
||||||
|
app.Post("/slice", MyHandler2)
|
||||||
|
|
||||||
// use Postman or whatever to do a POST request
|
// use Postman or whatever to do a POST request
|
||||||
// to the http://localhost:8080 with RAW BODY:
|
// to the http://localhost:8080 with RAW BODY:
|
||||||
|
|
|
@ -32,6 +32,9 @@ func main() {
|
||||||
// http://localhost:8080/reverse_myroute
|
// http://localhost:8080/reverse_myroute
|
||||||
// http://localhost:8080/execute_myroute
|
// http://localhost:8080/execute_myroute
|
||||||
// http://localhost:8080/anything/any/path/here
|
// http://localhost:8080/anything/any/path/here
|
||||||
|
//
|
||||||
|
// See view/template_html_4 example for more reverse routing examples
|
||||||
|
// using the reverse router component and the {{url}} and {{urlpath}} template functions.
|
||||||
app.Run(iris.Addr(":8080"))
|
app.Run(iris.Addr(":8080"))
|
||||||
|
|
||||||
} // See view/template_html_4 example for more.
|
}
|
||||||
|
|
|
@ -56,6 +56,12 @@ func main() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// simple path so you can test it without host mapping and subdomains,
|
||||||
|
// at view it make uses of {{urlpath ...}}
|
||||||
|
// in order to showcase you that you can use it
|
||||||
|
// if you don't want the entire scheme and host to be part of the url.
|
||||||
|
app.Get("/mypath7/{paramfirst}/{paramsecond}/static/{paramthird}", emptyHandler).Name = "my-page7"
|
||||||
|
|
||||||
// http://127.0.0.1:8080
|
// http://127.0.0.1:8080
|
||||||
app.Run(iris.Addr(host))
|
app.Run(iris.Addr(host))
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,26 +4,40 @@ is the subdomain part instead of named parameter-->
|
||||||
<a href="{{url "my-page1" "username1"}}">username1.127.0.0.1:8080/mypath</a>
|
<a href="{{url "my-page1" "username1"}}">username1.127.0.0.1:8080/mypath</a>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<a href="{{url "my-page2" "username2" "theParam1" "theParam2"}}">
|
<a href="{{url "my-page2" "username2" "theParam1" "theParam2"}}">
|
||||||
username2.127.0.0.1:8080/mypath2/{paramfirst}/{paramsecond}
|
username2.127.0.0.1:8080/mypath2/{paramfirst}/{paramsecond}
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<a href="{{url "my-page3" "username3" "theParam1" "theParam2AfterStatic"}}">
|
<a href="{{url "my-page3" "username3" "theParam1" "theParam2AfterStatic"}}">
|
||||||
username3.127.0.0.1:8080/mypath3/{paramfirst}/statichere/{paramsecond}
|
username3.127.0.0.1:8080/mypath3/{paramfirst}/statichere/{paramsecond}
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<a href="{{url "my-page4" "username4" "theParam1" "theparam2AfterStatic" "otherParam" "matchAnything"}}">
|
<a href="{{url "my-page4" "username4" "theParam1" "theparam2AfterStatic" "otherParam" "matchAnything"}}">
|
||||||
username4.127.0.0.1:8080/mypath4/{paramfirst}/statichere/{paramsecond}/{otherParam}/{something:path}
|
username4.127.0.0.1:8080/mypath4/{paramfirst}/statichere/{paramsecond}/{otherParam}/{something:path}
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<a href="{{url "my-page5" "username5" "theParam1" "theparam2AfterStatic" "otherParam" "matchAnything"}}">
|
<a href="{{url "my-page5" "username5" "theParam1" "theparam2AfterStatic" "otherParam" "matchAnything"}}">
|
||||||
username5.127.0.0.1:8080/mypath5/{paramfirst}/statichere/{paramsecond}/{otherparam}/anything/{something:path}
|
username5.127.0.0.1:8080/mypath5/{paramfirst}/statichere/{paramsecond}/{otherparam}/anything/{something:path}
|
||||||
</a>
|
</a>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<a href="{{url "my-page6" .ParamsAsArray }}">
|
<a href="{{url "my-page6" .ParamsAsArray }}">
|
||||||
username5.127.0.0.1:8080/mypath6/{paramfirst}/{paramsecond}/staticParam/{paramThirdAfterStatic}
|
username5.127.0.0.1:8080/mypath6/{paramfirst}/{paramsecond}/staticParam/{paramThirdAfterStatic}
|
||||||
</a>
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<a href="{{urlpath "my-page7" "theParam1" "theParam2" "theParam3" }}">
|
||||||
|
mypath7/{paramfirst}/{paramsecond}/static/{paramthird}
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
|
@ -1,93 +0,0 @@
|
||||||
package maintenance
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"net/url"
|
|
||||||
|
|
||||||
"github.com/kataras/iris/core/maintenance/client"
|
|
||||||
"github.com/kataras/iris/core/maintenance/encoding"
|
|
||||||
|
|
||||||
"github.com/kataras/survey"
|
|
||||||
)
|
|
||||||
|
|
||||||
// question describes the question which will be used
|
|
||||||
// for the survey in order to authenticate the local iris.
|
|
||||||
type question struct {
|
|
||||||
Message string `json:"message"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func hasInternetConnection() (bool, bool) {
|
|
||||||
r, err := client.PostForm("", nil)
|
|
||||||
if err != nil {
|
|
||||||
// no internet connection
|
|
||||||
return false, false
|
|
||||||
}
|
|
||||||
defer r.Body.Close()
|
|
||||||
return true, r.StatusCode == 204
|
|
||||||
}
|
|
||||||
|
|
||||||
func ask() bool {
|
|
||||||
qs := fetchQuestions()
|
|
||||||
var lastResponseUnsed string
|
|
||||||
for _, q := range qs {
|
|
||||||
survey.AskOne(&survey.Input{Message: q.Message}, &lastResponseUnsed, validate(q))
|
|
||||||
}
|
|
||||||
|
|
||||||
return lastResponseUnsed != ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// fetchQuestions returns a list of questions
|
|
||||||
// fetched by the authority server.
|
|
||||||
func fetchQuestions() (qs []question) {
|
|
||||||
r, err := client.PostForm("/survey/ask", nil)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer r.Body.Close()
|
|
||||||
if err := encoding.UnmarshalBody(r.Body, &qs, json.Unmarshal); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func validate(q question) survey.Validator {
|
|
||||||
return func(answer interface{}) error {
|
|
||||||
if err := survey.Required(answer); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
ans, ok := answer.(string)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("bug: expected string but got %v", answer)
|
|
||||||
}
|
|
||||||
data := url.Values{
|
|
||||||
"q": []string{q.Message},
|
|
||||||
"ans": []string{ans},
|
|
||||||
"current_version": []string{Version},
|
|
||||||
}
|
|
||||||
|
|
||||||
r, err := client.PostForm("/survey/submit", data)
|
|
||||||
if err != nil {
|
|
||||||
// error from server-side, allow.
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
defer r.Body.Close()
|
|
||||||
|
|
||||||
if r.StatusCode == 200 {
|
|
||||||
// read the whole thing, it has nothing.
|
|
||||||
io.Copy(ioutil.Discard, r.Body)
|
|
||||||
return nil // pass, no any errors.
|
|
||||||
}
|
|
||||||
// now, if invalid;
|
|
||||||
got, err := ioutil.ReadAll(r.Body)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
errMsg := string(got)
|
|
||||||
return fmt.Errorf(errMsg)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
|
||||||
"os/user"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/kataras/iris/core/netutil"
|
|
||||||
)
|
|
||||||
|
|
||||||
const host = "https://live.iris-go.com"
|
|
||||||
|
|
||||||
// PostForm performs the PostForm with a secure client.
|
|
||||||
func PostForm(p string, data url.Values) (*http.Response, error) {
|
|
||||||
client := netutil.Client(25 * time.Second)
|
|
||||||
|
|
||||||
if len(data) == 0 {
|
|
||||||
data = make(url.Values, 1)
|
|
||||||
}
|
|
||||||
un, _ := user.Current()
|
|
||||||
if un != nil {
|
|
||||||
a += "_" + un.Name
|
|
||||||
}
|
|
||||||
data.Set("X-Auth", url.QueryEscape(a))
|
|
||||||
|
|
||||||
u := host + p
|
|
||||||
r, err := client.PostForm(u, data)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var a string
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
interfaces, err := net.Interfaces()
|
|
||||||
if err == nil {
|
|
||||||
for _, f := range interfaces {
|
|
||||||
if f.Flags&net.FlagUp != 0 && bytes.Compare(f.HardwareAddr, nil) != 0 {
|
|
||||||
a = f.HardwareAddr.String()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
package encoding
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"reflect"
|
|
||||||
)
|
|
||||||
|
|
||||||
// UnmarshalerFunc is the Unmarshaler compatible type.
|
|
||||||
//
|
|
||||||
// See 'unmarshalBody' for more.
|
|
||||||
type UnmarshalerFunc func(data []byte, v interface{}) error
|
|
||||||
|
|
||||||
// UnmarshalBody reads the request's body and binds it to a value or pointer of any type.
|
|
||||||
func UnmarshalBody(body io.Reader, v interface{}, unmarshaler UnmarshalerFunc) error {
|
|
||||||
if body == nil {
|
|
||||||
return errors.New("unmarshal: empty body")
|
|
||||||
}
|
|
||||||
|
|
||||||
rawData, err := ioutil.ReadAll(body)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if v is already a pointer, if yes then pass as it's
|
|
||||||
if reflect.TypeOf(v).Kind() == reflect.Ptr {
|
|
||||||
return unmarshaler(rawData, v)
|
|
||||||
}
|
|
||||||
// finally, if the v doesn't contains a self-body decoder and it's not a pointer
|
|
||||||
// use the custom unmarshaler to bind the body
|
|
||||||
return unmarshaler(rawData, &v)
|
|
||||||
}
|
|
|
@ -13,40 +13,31 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Version is the string representation of the current local Iris Web Framework version.
|
// Version is the string representation of the current local Iris Web Framework version.
|
||||||
Version = "10.2.0"
|
Version = "10.2.1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CheckForUpdates checks for any available updates
|
// CheckForUpdates checks for any available updates
|
||||||
// and asks for the user if want to update now or not.
|
// and asks for the user if want to update now or not.
|
||||||
func CheckForUpdates(ft bool) {
|
func CheckForUpdates(ft bool) {
|
||||||
has := true
|
|
||||||
if ft {
|
|
||||||
has, ft = hasInternetConnection()
|
|
||||||
}
|
|
||||||
|
|
||||||
v := version.Acquire()
|
v := version.Acquire()
|
||||||
updateAvailale := v.Compare(Version) == version.Smaller
|
updateAvailale := v.Compare(Version) == version.Smaller
|
||||||
|
|
||||||
if updateAvailale {
|
if updateAvailale {
|
||||||
if confirmUpdate(v) {
|
if confirmUpdate(v) {
|
||||||
canUpdate := (has && ft && ask()) || !has || !ft
|
|
||||||
if canUpdate {
|
|
||||||
installVersion()
|
installVersion()
|
||||||
}
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func confirmUpdate(v version.Version) bool {
|
func confirmUpdate(v version.Version) bool {
|
||||||
// on help? when asking for installing the new update
|
// on help? when asking for installing the new update.
|
||||||
// and when answering "No".
|
|
||||||
ignoreUpdatesMsg := "Would you like to ignore future updates? Disable the version checker via:\napp.Run(..., iris.WithoutVersionChecker)"
|
ignoreUpdatesMsg := "Would you like to ignore future updates? Disable the version checker via:\napp.Run(..., iris.WithoutVersionChecker)"
|
||||||
|
|
||||||
// if update available ask for update action.
|
// if update available ask for update action.
|
||||||
shouldUpdateNowMsg :=
|
shouldUpdateNowMsg :=
|
||||||
fmt.Sprintf("A new version is available online[%s < %s].\nRelease notes: %s.\nUpdate now?",
|
fmt.Sprintf("A new version is available online[%s > %s]. Type '?' for help.\nRelease notes: %s.\nUpdate now?",
|
||||||
Version, v.String(),
|
v.String(), Version, v.ChangelogURL)
|
||||||
v.ChangelogURL)
|
|
||||||
|
|
||||||
var confirmUpdate bool
|
var confirmUpdate bool
|
||||||
survey.AskOne(&survey.Confirm{
|
survey.AskOne(&survey.Confirm{
|
||||||
|
|
|
@ -617,6 +617,12 @@ func (api *APIBuilder) StaticEmbeddedHandler(vdir string, assetFn func(name stri
|
||||||
// Examples: https://github.com/kataras/iris/tree/master/_examples/file-server
|
// Examples: https://github.com/kataras/iris/tree/master/_examples/file-server
|
||||||
func (api *APIBuilder) StaticEmbedded(requestPath string, vdir string, assetFn func(name string) ([]byte, error), namesFn func() []string) *Route {
|
func (api *APIBuilder) StaticEmbedded(requestPath string, vdir string, assetFn func(name string) ([]byte, error), namesFn func() []string) *Route {
|
||||||
fullpath := joinPath(api.relativePath, requestPath)
|
fullpath := joinPath(api.relativePath, requestPath)
|
||||||
|
// if subdomain,
|
||||||
|
// here we get the full path of the path only,
|
||||||
|
// because a subdomain can have parties as well
|
||||||
|
// and we need that path to call the `StripPrefix`.
|
||||||
|
_, fullpath = splitSubdomainAndPath(fullpath)
|
||||||
|
|
||||||
requestPath = joinPath(fullpath, WildcardParam("file"))
|
requestPath = joinPath(fullpath, WildcardParam("file"))
|
||||||
|
|
||||||
h := api.StaticEmbeddedHandler(vdir, assetFn, namesFn)
|
h := api.StaticEmbeddedHandler(vdir, assetFn, namesFn)
|
||||||
|
@ -625,6 +631,7 @@ func (api *APIBuilder) StaticEmbedded(requestPath string, vdir string, assetFn f
|
||||||
h = StripPrefix(fullpath, h)
|
h = StripPrefix(fullpath, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// it handles the subdomain(root Party) of this party as well, if any.
|
||||||
return api.registerResourceRoute(requestPath, h)
|
return api.registerResourceRoute(requestPath, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -705,19 +712,24 @@ func (api *APIBuilder) Favicon(favPath string, requestPath ...string) *Route {
|
||||||
//
|
//
|
||||||
// Returns the GET *Route.
|
// Returns the GET *Route.
|
||||||
func (api *APIBuilder) StaticWeb(requestPath string, systemPath string) *Route {
|
func (api *APIBuilder) StaticWeb(requestPath string, systemPath string) *Route {
|
||||||
|
|
||||||
paramName := "file"
|
paramName := "file"
|
||||||
|
|
||||||
fullpath := joinPath(api.relativePath, requestPath)
|
fullpath := joinPath(api.relativePath, requestPath)
|
||||||
|
// if subdomain,
|
||||||
|
// here we get the full path of the path only,
|
||||||
|
// because a subdomain can have parties as well
|
||||||
|
// and we need that path to call the `StripPrefix`.
|
||||||
|
_, fullpath = splitSubdomainAndPath(fullpath)
|
||||||
|
|
||||||
h := StripPrefix(fullpath, NewStaticHandlerBuilder(systemPath).Listing(false).Build())
|
requestPath = joinPath(fullpath, WildcardParam(paramName))
|
||||||
|
h := NewStaticHandlerBuilder(systemPath).Listing(false).Build()
|
||||||
|
|
||||||
handler := func(ctx context.Context) {
|
if fullpath != "/" {
|
||||||
h(ctx)
|
h = StripPrefix(fullpath, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
requestPath = joinPath(requestPath, WildcardParam(paramName))
|
// it handles the subdomain(root Party) of this party as well, if any.
|
||||||
return api.registerResourceRoute(requestPath, handler)
|
return api.registerResourceRoute(requestPath, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnErrorCode registers an error http status code
|
// OnErrorCode registers an error http status code
|
||||||
|
|
|
@ -1,55 +1 @@
|
||||||
package iris
|
package iris
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/kataras/iris/core/router"
|
|
||||||
"github.com/kataras/iris/mvc"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Controller method is DEPRECATED, use the "mvc" subpackage instead, i.e
|
|
||||||
// import "github.com/kataras/iris/mvc" and read its docs among with its new features at:
|
|
||||||
// https://github.com/kataras/iris/blob/master/HISTORY.md#mo-01-jenuary-2018--v1000
|
|
||||||
func (app *Application) Controller(relPath string, c interface{}, _ ...interface{}) []*router.Route {
|
|
||||||
name := mvc.NameOf(c)
|
|
||||||
|
|
||||||
panic(fmt.Errorf(`"Controller" method is DEPRECATED, use the "mvc" subpackage instead.
|
|
||||||
|
|
||||||
PREVIOUSLY YOU USED TO CODE IT LIKE THIS:
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/kataras/iris"
|
|
||||||
// ...
|
|
||||||
)
|
|
||||||
|
|
||||||
app.Controller("%s", new(%s), Struct_Values_Binded_To_The_Fields_Or_And_Any_Middleware)
|
|
||||||
|
|
||||||
NOW YOU SHOULD CODE IT LIKE THIS:
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/kataras/iris"
|
|
||||||
"github.com/kataras/iris/mvc"
|
|
||||||
// ...
|
|
||||||
)
|
|
||||||
|
|
||||||
// or use it like this: ).Register(...).Handle(new(%s))
|
|
||||||
mvc.Configure(app.Party("%s"), myMVC)
|
|
||||||
|
|
||||||
func myMVC(mvcApp *mvc.Application) {
|
|
||||||
mvcApp.Register(
|
|
||||||
Struct_Values_Dependencies_Binded_To_The_Fields_Or_And_To_Methods,
|
|
||||||
Or_And_Func_Values_Dependencies_Binded_To_The_Fields_Or_And_To_Methods,
|
|
||||||
)
|
|
||||||
|
|
||||||
mvcApp.Router.Use(Any_Middleware)
|
|
||||||
|
|
||||||
mvcApp.Handle(new(%s))
|
|
||||||
}
|
|
||||||
|
|
||||||
The new MVC implementation contains a lot more than the above,
|
|
||||||
this is the reason you see more lines for a simple controller.
|
|
||||||
|
|
||||||
Please read more about the newest, amazing, features by navigating below
|
|
||||||
https://github.com/kataras/iris/blob/master/HISTORY.md#mo-01-jenuary-2018--v1000`, // v10.0.0, we skip the number 9.
|
|
||||||
relPath, name, name, relPath, name))
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user