[
| Provider | Phiên bản | Mô tả | Tính năng nổi bật |
|---|---|---|---|
| cache | v0.0.2 | Hệ thống cache đa lớp | Redis, MongoDB, Memory, File drivers |
| config | v0.0.3 | Quản lý cấu hình ứng dụng | YAML, JSON, ENV, dot notation |
| log | v0.0.3 | Hệ thống logging | Console, File, Stack handlers |
| mailer | v0.0.3 | Gửi email | SMTP, Template, Attachments |
| queue | v0.0.3 | Hàng đợi xử lý tác vụ | Memory, Redis adapters |
| scheduler | v0.0.3 | Lập lịch tác vụ | Cron expressions, Redis locking |
| sms | v0.0.2 | Dịch vụ gửi SMS | Multiple provider support |
- scheduler: Hệ thống lập lịch tác vụ mới với khả năng tích hợp Redis
- queue: Hoàn thiện chức năng worker với tích hợp scheduler
- mailer: Cập nhật từ
github.com/go-gomail/gomailsanggopkg.in/gomail.v2 - config: Bổ sung các API tiện ích và MockManager cho unit testing
- Nâng cấp toàn bộ các dependency lõi lên phiên bản mới nhất
- Cải thiện performance và bảo mật
- Tăng cường độ bao phủ của test suite
- http và middleware đã được chuyển sang repository riêng
Xem chi tiết về các phiên bản trước tại CHANGELOG.md
Mỗi provider là một Go module độc lập và có thể được cài đặt riêng biệt:
# Cài đặt cache provider
go get github.com/go-fork/providers/cache@v0.0.2
# Cài đặt config provider
go get github.com/go-fork/providers/config@v0.0.3
# Cài đặt mailer provider
go get github.com/go-fork/providers/mailer@v0.0.3
# Cài đặt queue provider
go get github.com/go-fork/providers/queue@v0.0.3
# Cài đặt scheduler provider
go get github.com/go-fork/providers/scheduler@v0.0.3
# Cài đặt log provider
go get github.com/go-fork/providers/log@v0.0.3
# Cài đặt sms provider
go get github.com/go-fork/providers/sms@v0.0.2# Cài đặt tất cả các providers với phiên bản mới nhất
go get github.com/go-fork/providers/...@latestpackage main
import (
"context"
"log"
"time"
"github.com/go-fork/providers/cache"
)
func main() {
// Create a new cache manager with default configuration
cacheManager, err := cache.NewManager().Build()
if err != nil {
log.Fatalf("Failed to create cache manager: %v", err)
}
ctx := context.Background()
// Store a value in cache
err = cacheManager.Set(ctx, "key", "value", 5*time.Minute)
if err != nil {
log.Fatalf("Failed to set cache: %v", err)
}
// Retrieve a value from cache
var value string
exists, err := cacheManager.Get(ctx, "key", &value)
if err != nil {
log.Fatalf("Failed to get from cache: %v", err)
}
if exists {
log.Printf("Value from cache: %s", value)
} else {
log.Println("Value not found in cache")
}
}- Thiết kế module hóa: Mỗi provider là một module riêng biệt, có thể sử dụng độc lập.
- Dependency Injection: Tương thích hoàn toàn với go-fork/di v0.0.3.
- Khả năng cấu hình cao: Mỗi provider có nhiều tùy chọn cấu hình mở rộng.
- Dễ dàng mở rộng: Các interface tiện lợi để triển khai tùy chỉnh.
- Kiểm thử kỹ lưỡng: Bộ test suite toàn diện cho mỗi provider.
- Sẵn sàng cho production: Đã được sử dụng trong các ứng dụng thực tế.
- Tài liệu đầy đủ: API docs, README và ví dụ chi tiết.
| Provider | Phiên bản tiếp theo | Kế hoạch phát triển |
|---|---|---|
| sms | v0.0.1 | Tích hợp nhiều nhà cung cấp SMS mới |
Hệ thống cache với multiple driver:
- Memory: Bộ nhớ tạm trong ứng dụng với auto cleanup
- File: Lưu trữ cache vào hệ thống file
- Redis: Tích hợp đầy đủ với Redis v9+
- MongoDB: Lưu trữ cache phân tán với MongoDB
Hệ thống quản lý cấu hình:
- Hỗ trợ YAML, JSON, ENV
- Truy cập dot notation (app.database.host)
- Type-safe accessors (GetString, GetInt...)
- Binding với struct tự động
- Watcher cho file cấu hình
Hệ thống logging:
- Multiple severity levels (Debug, Info, Warning, Error, Fatal)
- Console handler với ANSI color support
- File handler với rotation tự động
- Stack trace capture tự động khi error
Giải pháp gửi email:
- SMTP support với cấu hình linh hoạt
- Template rendering (HTML, Text)
- File đính kèm và inline images
- Queue integration để gửi bất đồng bộ
Hệ thống xử lý hàng đợi:
- Memory và Redis adapters
- Delayed/scheduled jobs
- Retry và error handling
- Priority queues
- Worker pool management
Hệ thống lập lịch tác vụ:
- Cron expressions
- Distributed locking với Redis
- One-time và recurring tasks
- Callbacks và error handling
Dịch vụ gửi tin nhắn SMS:
- Support nhiều provider SMS
- Template support
- Queue integration
- Retry mechanism
- Tài liệu chi tiết về mỗi provider có trong thư mục tương ứng (README.md).
- Ví dụ có thể tìm thấy trong thư mục examples.
- Tài liệu API có sẵn trên GoDoc.
- Thông tin quy trình phát hành, xem RELEASE_PROCESS.md.
- Lịch sử thay đổi chi tiết tại CHANGELOG.md.
| Provider | v0.0.2 | v0.0.3 | di v0.0.2 | di v0.0.3 |
|---|---|---|---|---|
| cache | ✅ | - | ✅ | ✅ |
| config | ✅ | ✅ | ✅ | ✅ |
| http | ✅ | - | ✅ | ❌ |
| log | ✅ | ✅ | ✅ | ✅ |
| mailer | ✅ | ✅ | ✅ | ✅ |
| queue | ✅ | ✅ | ✅ | ✅ |
| scheduler | - | ✅ | ❌ | ✅ |
| sms | ❌ | ❌ | ❌ | ❌ |
✅ = Tương thích đầy đủ ❌ = Không tương thích - = Không có phiên bản
Mọi đóng góp đều được chào đón! Vui lòng gửi Pull Request.
- Fork repository
- Tạo branch tính năng của bạn (
git checkout -b feature/amazing-feature) - Commit các thay đổi (
git commit -m 'Add some amazing feature') - Push đến branch (
git push origin feature/amazing-feature) - Mở Pull Request
Dự án này được cấp phép theo giấy phép MIT - xem file LICENSE để biết chi tiết.
- Lấy cảm hứng từ mẫu Service Provider
- Được xây dựng cho Fork Framework
- Phát triển bởi cộng đồng Go-Fork