diff --git a/HISTORY.md b/HISTORY.md index 3e7f2c4e..ea8e1391 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -149,7 +149,7 @@ Example can be found [here](_examples/http_request/upload-files/main.go). ## context#View -Just a minor addition, add a second optional variadic argument to the `context#view` method to accept a single value for template binding. +Just a minor addition, add a second optional variadic argument to the `context#View` method to accept a single value for template binding. When you just want one value and not key-value pairs, you used to use an empty string on the `ViewData`, which is fine, especially if you preload these from a previous handler/middleware in the request handlers chain. ```go diff --git a/HISTORY_GR.md b/HISTORY_GR.md new file mode 100644 index 00000000..f15a1fba --- /dev/null +++ b/HISTORY_GR.md @@ -0,0 +1,181 @@ +# Ιστορικό + +### Ψάχνετε για δωρεάν υποστήριξη σε πραγματικό χρόνο; + + https://github.com/kataras/iris/issues + https://chat.iris-go.com + +### Ψάχνετε για προηγούμενες εκδόσεις; + + https://github.com/kataras/iris/releases + +### Πρέπει να αναβαθμίσω το Iris μου; + +Οι προγραμματιστές δεν αναγκάζονται να αναβαθμίσουν αν δεν το χρειάζονται πραγματικά. Αναβαθμίστε όποτε αισθάνεστε έτοιμοι. + +> Το Iris εκμεταλλεύεται τη λεγόμενη λειτουργία [vendor directory](https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo). Παίρνετε πλήρως αναπαραγωγίσιμα builds, καθώς αυτή η μέθοδος προστατεύει από τις upstream μετονομασίες και διαγραφές. + +**Πώς να αναβαθμίσετε**: Ανοίξτε την γραμμή εντολών σας και εκτελέστε αυτήν την εντολή: `go get -u github.com/kataras/iris` ή αφήστε το αυτόματο updater να το κάνει αυτό για σας. + +# Mo, 01 Jenuary 2018 | v10.0.0 + +Πρέπει να ευχαριστήσουμε την [Κυρία Diana](https://www.instagram.com/merry.dii/) για το νέο μας [λογότυπο](https://iris-go.com/images/icon.svg)! + +Μπορείτε να [επικοινωνήσετε](mailto:Kovalenkodiana8@gmail.com) μαζί της για οποιεσδήποτε σχετικές με το σχεδιασμό εργασίες ή να της στείλειτε ένα άμεσο μήνυμα μέσω [instagram](https://www.instagram.com/merry.dii/). + +

+ +

+ +Σε αυτή την έκδοση έχουμε πολλές εσωτερικές βελτιώσεις αλλά μόνο δύο μεγάλες αλλαγές και ένα μεγάλο χαρακτηριστικό, που ονομάζεται **hero**. + +> Η νέα έκδοση προσθέτει 75 καινούρια commits, το PR βρίσκεται [εδώ](https://github.com/kataras/iris/pull/849). Παρακαλώ διαβάστε τις εσωτερικές αλλαγές αν σχεδιάζετε ένα web framework που βασίζεται στο Iris. Γιατί η έκδοση 9 παραλείφθηκε; Έτσι. + +## Hero + +Το νέο πακέτο [hero](hero) περιέχει χαρακτηριστικά για σύνδεση(binding) οποιουδήποτε αντικειμένου ή function το οποίο τα `handlers` μπορεί να χρησημοποιούν, αυτά λεγόνται εξαρτήσεις(dependencies). Τα Hero funcs μπορούν επίσης να επιστρέψουν οποιαδήποτε τιμή, οποιουδήποτε τύπου, αυτές οι τιμές αποστέλλονται στον πελάτη(client). + +> Μπορεί να είχατε ξαναδει "εξαρτήσεις" και "δέσιμο" πριν αλλά ποτέ με υποστήριξη από τον επεξεργαστή κώδικα (code editor), με το Iris πέρνεις πραγματικά ασφαλή "δεσίματα"(bindings) χάρη στο νέο `hero` πακέτο. Αυτή η όλη εκτέλεση(implementation) είναι επίσης η ποιο γρήγορη που έχει επιτευχθεί εως τώρα, η επίδοση είναι πολύ κοντά στα απλά "handlers" και αυτό γιατί το Iris υπολογίζει τα πάντα πριν καν ο server τρέξει! + +Παρακάτω θα δείτε μερικά στιγμιότυπα που ετοιμάσαμε για εσάς, ώστε να γίνουν πιο κατανοητά τα παραπάνω: + +### 1. Παράμετροι διαδρομής - Ενσωματωμένες Εξαρτήσεις (Built'n Dependencies) + +![](https://github.com/kataras/explore/raw/master/iris/hero/hero-1-monokai.png) + +### 2. Υπηρεσίες - Στατικές Eξαρτήσεις (Static Dependencies) + +![](https://github.com/kataras/explore/raw/master/iris/hero/hero-2-monokai.png) + +### 3. Ανά Αίτηση - Δυναμικές Eξαρτήσεις (Dynamic Dependencies) + +![](https://github.com/kataras/explore/raw/master/iris/hero/hero-3-monokai.png) + +Είναι πραγματικά πολύ εύκολο να καταλάβεις πως δουλεύουν τα `hero funcs` και όταν αρχίσεις να τα χρησιμοποιείς **δεν γυρίζεις ποτέ πίσω**. + +Παραδείγματα: + +- [Βασικό](_examples/hero/basic/main.go) +- [Επισκόπηση](_examples/hero/overview) + +## MVC + +Πρέπει να καταλάβεις πως δουλεύει το `hero` πακετό ώστε να να δουλέψεις με το `mvc`, γιατί το `mvc` πακέτο βασίζετε στο `hero` για τις μεθόδους του controller σου, οι ίδιοι κανόνες εφαρμόζονται και εκεί. + +Παραδείγματα: + +**Αν χρησημοποιούσατε το MVC πριν, διαβάστε προσεχτικά: Το MVC ΠΕΡΙΕΧΕΙ ΟΡΙΣΜΕΝΕΣ ΑΛΛΑΓΕΣ, ΜΠΟΡΕΙΤΕ ΝΑ ΚΑΝΕΤΕ ΠΕΡΙΣΣΟΤΕΡΑ ΑΠΟ'ΤΙ ΠΡΙΝ** + +**ΠΑΡΑΚΑΛΩ ΔΙΑΒΑΣΤΕ ΤΑ ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΡΟΣΕΧΤΙΚΑ, ΓΙΑ ΕΣΑΣ ΦΤΙΑΧΤΗΚΑΝ** + +Τα παλιά παραδείγματα είναι επίσης εδώ ώστε να μπορείτε να τα συγκρίνετε με τα καινούρια. + +| ΤΩΡΑ | ΠΡΙΝ | +| -----------|-------------| +| [Hello world](_examples/mvc/hello-world/main.go) | [ΠΑΛΙΟ Hello world](https://github.com/kataras/iris/blob/v8/_examples/mvc/hello-world/main.go) | +| [Session Controller](_examples/mvc/session-controller/main.go) | [ΠΑΛΙΟ Session Controller](https://github.com/kataras/iris/blob/v8/_examples/mvc/session-controller/main.go) | +| [Overview - Plus Repository and Service layers](_examples/mvc/overview) | [ΠΑΛΙΟ Overview - Plus Repository and Service layers](https://github.com/kataras/iris/tree/v8/_examples/mvc/overview) | +| [Login showcase - Plus Repository and Service layers](_examples/mvc/login) | [ΠΑΛΙΟ Login showcase - Plus Repository and Service layers](https://github.com/kataras/iris/tree/v8/_examples/mvc/login) | +| [Singleton](_examples/mvc/singleton) | **NEO** | +| [Websocket Controller](_examples/mvc/websocket) | **NEO** | +| [Vue.js Todo MVC](_examples/tutorial/vuejs-todo-mvc) | **NEO** | + +## context#PostMaxMemory + +Αφαίρεση της παλιάς στατικής μεταβλητής `context.DefaultMaxMemory` και αντικατάσταση με ρύθμιση στο configuration `WithPostMaxMemory`. + +```go +// WithPostMaxMemory sets the maximum post data size +// that a client can send to the server, this differs +// from the overral request body size which can be modified +// by the `context#SetMaxRequestBodySize` or `iris#LimitRequestBodySize`. +// +// Defaults to 32MB or 32 << 20 if you prefer. +func WithPostMaxMemory(limit int64) Configurator +``` + +Αν χρησημοποιούσατε την παλιά στατική μεταβλητή θα χρειαστεί να κάνετε μια αλλαγή σε εκείνη τη γραμμή του κώδικα. + +```go +import "github.com/kataras/iris" + +func main() { + app := iris.New() + // [...] + + app.Run(iris.Addr(":8080"), iris.WithPostMaxMemory(10 << 20)) +} +``` + +## context#UploadFormFiles + +Νέα μέθοδος για ανέβασμα πολλαπλών αρχείων από τον client, πρέπει να χρησημοποιείται για απλές και συνηθισμένες καταστάσεις, ένα helper είναι μόνο. + +```go +// UploadFormFiles uploads any received file(s) from the client +// to the system physical location "destDirectory". +// +// The second optional argument "before" gives caller the chance to +// modify the *miltipart.FileHeader before saving to the disk, +// it can be used to change a file's name based on the current request, +// all FileHeader's options can be changed. You can ignore it if +// you don't need to use this capability before saving a file to the disk. +// +// Note that it doesn't check if request body streamed. +// +// Returns the copied length as int64 and +// a not nil error if at least one new file +// can't be created due to the operating system's permissions or +// http.ErrMissingFile if no file received. +// +// If you want to receive & accept files and manage them manually you can use the `context#FormFile` +// instead and create a copy function that suits your needs, the below is for generic usage. +// +// The default form's memory maximum size is 32MB, it can be changed by the +// `iris#WithPostMaxMemory` configurator at main configuration passed on `app.Run`'s second argument. +// +// See `FormFile` to a more controlled to receive a file. +func (ctx *context) UploadFormFiles( + destDirectory string, + before ...func(string, string), + ) (int64, error) +``` + +Το παράδειγμα μπορεί να βρεθεί [εδώ](_examples/http_request/upload-files/main.go). + +## context#View + +Απλά μια μικρή προσθήκη μια δεύτερης προαιρετικής variadic παράμετρου στη `context#View` μέθοδο για να δέχεται μια μονή τιμή για template binding. +Όταν απλά θέλετε να εμφάνισετε ένα struct value και όχι ζεύγη από κλειδί-τιμή, παλιότερα για να το κάνετε αυτό έπρεπε να δηλώσετε κενό string στη 1η παράμετρο στη `context#ViewData` μέθοδο, το οποίο είναι μια χαρά ειδικά αν δηλώνατε αυτά τα δεδομένα σε προηγούμενο handler της αλυσίδας. + +```go +func(ctx iris.Context) { + ctx.ViewData("", myItem{Name: "iris" }) + ctx.View("item.html") +} +``` + +Το ίδιο όπως: + +```go +func(ctx iris.Context) { + ctx.View("item.html", myItem{Name: "iris" }) +} +``` + +```html +Item's name: {{.Name}} +``` + +## context#YAML + +Προσθήκη νέας μεθόδου, `context#YAML`, εμφανίζει δομημένο yaml κείμενο από struct value. + +```go +// YAML marshals the "v" using the yaml marshaler and renders its result to the client. +func YAML(v interface{}) (int, error) +``` + +## Session#GetString + +Η μέθοδος `sessions/session#GetString` μπορεί πλέον να επιστρέψει τιμή ακόμα και απο τιμή που αποθηκεύτηκαι σαν αριθμός (integer), όπως ακριβώς κάνουν ήδη τα: memstore, η προσωρινή μνήμη του context, οι δυναμικές μεταβλητές του path routing και οι παράμετροι του url query. \ No newline at end of file diff --git a/HISTORY_ZH.md b/HISTORY_ZH.md index 5677f0fe..51837514 100644 --- a/HISTORY_ZH.md +++ b/HISTORY_ZH.md @@ -1,4 +1,4 @@ -# 更新记录 +# 更新记录 ### 想得到免费即时的支持? diff --git a/README.md b/README.md index 29370d38..eaef67bf 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Learn what [others say about Iris](#support) and [star](https://github.com/katar ## 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://opencollective.com/iris#backer) diff --git a/README_GR.md b/README_GR.md index e7d434b5..9db61a8c 100644 --- a/README_GR.md +++ b/README_GR.md @@ -14,7 +14,7 @@ ## Yποστηρικτές -Eυχαριστούμε όλους τους υποστηρικτές μας! [Γίνετε ένας από αυτούς](https://opencollective.com/iris#backer) +Eυχαριστούμε όλους τους υποστηρικτές μας! 🙏 [Γίνετε ένας από αυτούς](https://opencollective.com/iris#backer) diff --git a/README_RU.md b/README_RU.md index e4d5006d..7c04f7a7 100644 --- a/README_RU.md +++ b/README_RU.md @@ -14,7 +14,7 @@ Iris предоставляет красиво выразительную и у ## Сторонники -Спасибо всем, кто поддерживал нас! [Поддержать нас](https://opencollective.com/iris#backer) +Спасибо всем, кто поддерживал нас! 🙏 [Поддержать нас](https://opencollective.com/iris#backer) diff --git a/README_ZH.md b/README_ZH.md index 99b16f7a..334bd478 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -14,7 +14,7 @@ Iris 功能强大、使用简单,它将会是你下一个网站、API 服务 ## 支持者 -感谢所有的支持者! [支持我们](https://opencollective.com/iris#backer) +感谢所有的支持者! 🙏 [支持我们](https://opencollective.com/iris#backer)