Database (Cơ sở dữ liệu) là cái gì? Tại sao Model lại dùng Database? Phần 1

Dịch vụ nấu cơm bằng nồi cơm điện của chúng ta đang rất phát triển. Khách mới cũng nhiều mà khách cũ cũng đông, Mỗi khách lại thích một loại gạo khác nhau, đặt số lượng cơm khác nhau, và đến nhận cơm vào những lúc khác nhau nốt. Bạn không thể nhớ hết được tên khách, loại gạo, thời gian, còn phải quản lí sô gạo còn trong kho, mỗi loại dư bao nhiêu, bao giờ nhập được gạo mới, còn tình trạng nồi cơm, cái nào nấu nhanh, cái nào nấu chậm, cái nào bị hỏng. Cái việc nấu cơm bằng nồi cơm điện này không đơn giản. Bạn cần một chỗ nào đó để ghi lại những thông tin này. Và đó chính là lúc cái gì ra đời? ………… Continue reading

Middleware, nhân tố mới xuất hiện trong framework. Middleware là cái gì? Tại sao lại thêm vào đây? Thêm vào ntn?

Mô hình chúng ta đang có là ntn.
MVC

Hãy tưởng tượng ntn, bạn rất giỏi trong việc nấu cơm bằng nồi cơm điện. Không ai có thể nấu cơm bằng nồi cơm điện ngon hơn bạn. Bạn quyết định cung cấp dịch vụ nấu cơm bằng nồi cơm điện. Bạn đặt hàng thằng Router là cứ ai yêu cầu nấu cái gì đó thì chuyển hết cho bạn, vì chỉ có bạn cung cấp dịch vụ nấu.

Đời không như là mơ. Khách hàng không chỉ yêu cầu nấu cơm, ngoài các yêu cầu nấu cơm bình thường, thỉnh thoảng lại có các yêu cầu như:
Continue reading

Điều hướng. Làm cách nào để biết url nào ứng với controller nào.

Điều hướng (routing) là cơ chế dựa vào url, và các thông tin liên quan khác như phuong thức (method), tham số (param), … để chỉ định controller cho truy vấn. (Định nghĩa tự nghĩ ra)

Nguyên lí khá đơn giản. Xem cái truy vấn đó khớp nhất với quy tắc nào thì dùng controller tương ứng với quy tắc đó.

Cái điều hướng đơn giản của mình sẽ dựa vào 2 thứ:

  • Phuowng thức có khớp ko
  • Url có khớp ko.
    • Url khớp chính xác
    • Url khớp với regex

Ví dụ:

  • GET / sẽ khớp với GET /
  • POST /123 sẽ khớp với POST /123
  • PUT /id/{id} sẽ khớp với /id/<chuỗi chữ số >

Từ đó gọi tới controller tương ứng với mỗi truy vấn.

Comment and share

Con nhà người ta code config ntn. mình code config ntn.

File config mỗi thằng code 1 kiểu. Apache dùng file text theo dạng tự quy định. Laravel dùng mảng nhiều chiều, thêm config thì điền vào mảng.

Mình làm đơn giản thôi, dùng json. Tạo 1 cái struct rồi load json vào struct đó. Khi thêm config thì thêm dòng vào struct và json.

Cấu trúc struct

1
2
3
4
5
6
7
8
9
10
11
12
type Config struct {
Database struct {
Host string
User string
Pass string
Name string
Driver string
}
App struct {
Env string
}
}

Cấu trúc Json

1
2
3
4
5
6
7
8
9
10
11
12
{
"database": {
"host":"127.0.0.1",
"user":"admin",
"pass":"12345",
"name":"oximen",
"driver":"mysql"
},
"app": {
"ENV":"dev"
}
}

Thật là đơn giản :p

Comment and share

Author's picture

Nguyen Tien Thanh

(o.O)


Spamer


Kanagawa,Japan