Bài viết này để trả lời cho câu hỏi tạo DorewSite ra làm qq gì 
Wap4.co
- Chắc đã số ae là từ Wap4.co biết sang Dorew nên @Dai sẽ không giới thiệu chi tiết Wap4 là gì
- Wap4 cho phép xây dựng website với TWIG
- Wap4 tương tác với database là Custom Data với các tham số {id, name, data, time}
- data trong Custom Data là NoSQL
TWIG PHP
- Tác giả: Tuankill sử dụng twig symfony
- Tạo ra để selfhost, chạy code Wap4 trên hosting
- Sử dụng PHP và MySQL
- Dữ liệu ở trong 1 table duy nhất là custom_data gồm các cột {id, name, data, time}
- Cấu trúc database là SQL
TWIG PHP Mod (tạm gọi)
- Thêm tính năng cho phiên bản ở TWIG PHP
- Tham gia mod có @tờ ròm @ʟɪɴʜ ᴆᴀ̃ ᴄᴀ̆ɴɢ
- Thêm quản lý tương tác với database (cái này Dai không tham gia nên không rõ lắm :v)
Nguyên nhân DorewSite ra đời
@Dai và @tờ ròm backup data và code của Dorew.gq để sử dụng code TWIG PHP ở trên. Nhưng một số vấn về với code wap4 và TWIG
PHP nên @tờ ròm đã tạo ra TWIG PHP Mod để có thể chạy code Dorew/Jekyll VF.
Cứ tưởng là ngon rồi nhưng vấn đề mới xuất hiện.
Tốc độ load web sử dụng TWIG PHP quá chậm
Sau khi suy nghĩ thì @Dai đã tìm ra lý do: database (.sql) của Dorew nặng 2MB (hơn 8000 entry wap4). Mà cấu trúc của code TWIG PHP khi tương tác với database sẽ duyệt qua toàn bộ database.
Vd1: muốn lấy tất cả chat của thành viên là dai đã đăng thì dữ liệu của TWIG PHP ở trong cột "data" của table "custom_data" là string json đã encode. Muốn lấy ra:
Select toàn bộ cột có name là "chat" => duyệt toàn bộ "data" => decode json => json ra array => lấy "user" từ array.
Nếu chat có 1 100 cái thì TWIG PHP sẽ duyệt 100 lần.
Vd2: Show toàn bộ nội dung chatbox gồm 100 entry
TWIG PHP: database Select 100 cái để php giải mã, mỗi lần giải mã sẽ lại tương tương với database 100 lần => tương tác 10000 lần => Nếu là 1000 entry thì là 1000000 => a*n lần (a là số dữ liệu cần lấy, n là tổng dữ liệu trong table "custom data")=> Hosting gào thét, Database gào thét, người dùng gào thét. Web càng nhiều dữ liệu thì load web càng rùa bò.
Giờ giải quyết như thế nào? @Dai và @tờ ròm bàn nhau cho một cách giải quyết: Tạo một code mới, thay cách truy vấn tới database MySQL - DorewSite.
TWIG PHP chỉ có 1 table là "custom_data"
DorewSite gồm các table khác do người dùng tùy chỉnh: "user", "forum", "chat"... Giống với cách mà người lập trình khác sử dụng.
Lấy nội dung cũng tương tác database 1 lần không chơi a*n như kia.
DorewSite có gì hấy dẫn?
- Chạy được code twig
- Database dễ đọc, dễ quản lý hơn, có thể sử dụng hàm truy vấn MySQL để thao tác với dữ liệu (TWIG PHP không được)
- Không chạy được code Wap4 - Mở ra lối mới
- Nhiều tính năng, hàm hỗ trợ hơn.
Khuyết điểm của DorewSite?
- Không chạy được code Wap4, các bạn phải viết lại bằng hàm của DorewSite
- Phải học hàm DorewSite:https://dorew.gq/forum/319/cac-ham-xu-ly-trong-dorewsite.html
Bạn có thể giúp gì để phát triển DorewSite?
- Hỡ trợ hoàn thiện DorewSite
- Gợi ý tính năng, hàm cho DorewSite
- Chia sẻ template trên nền DorewSite
- Chia sẻ hosting để mọi người lập trình DorewSite
- Ủng hộ, giới thiệu DorewSite
-...

Wap4.co
- Chắc đã số ae là từ Wap4.co biết sang Dorew nên @Dai sẽ không giới thiệu chi tiết Wap4 là gì

- Wap4 cho phép xây dựng website với TWIG
- Wap4 tương tác với database là Custom Data với các tham số {id, name, data, time}
- data trong Custom Data là NoSQL
TWIG PHP
- Tác giả: Tuankill sử dụng twig symfony
- Tạo ra để selfhost, chạy code Wap4 trên hosting
- Sử dụng PHP và MySQL
- Dữ liệu ở trong 1 table duy nhất là custom_data gồm các cột {id, name, data, time}
- Cấu trúc database là SQL
TWIG PHP Mod (tạm gọi)
- Thêm tính năng cho phiên bản ở TWIG PHP
- Tham gia mod có @tờ ròm @ʟɪɴʜ ᴆᴀ̃ ᴄᴀ̆ɴɢ
- Thêm quản lý tương tác với database (cái này Dai không tham gia nên không rõ lắm :v)
Nguyên nhân DorewSite ra đời
@Dai và @tờ ròm backup data và code của Dorew.gq để sử dụng code TWIG PHP ở trên. Nhưng một số vấn về với code wap4 và TWIG
PHP nên @tờ ròm đã tạo ra TWIG PHP Mod để có thể chạy code Dorew/Jekyll VF.
Cứ tưởng là ngon rồi nhưng vấn đề mới xuất hiện.
Tốc độ load web sử dụng TWIG PHP quá chậm
Sau khi suy nghĩ thì @Dai đã tìm ra lý do: database (.sql) của Dorew nặng 2MB (hơn 8000 entry wap4). Mà cấu trúc của code TWIG PHP khi tương tác với database sẽ duyệt qua toàn bộ database.
Vd1: muốn lấy tất cả chat của thành viên là dai đã đăng thì dữ liệu của TWIG PHP ở trong cột "data" của table "custom_data" là string json đã encode. Muốn lấy ra:
Select toàn bộ cột có name là "chat" => duyệt toàn bộ "data" => decode json => json ra array => lấy "user" từ array.
Nếu chat có 1 100 cái thì TWIG PHP sẽ duyệt 100 lần.
Vd2: Show toàn bộ nội dung chatbox gồm 100 entry
TWIG PHP: database Select 100 cái để php giải mã, mỗi lần giải mã sẽ lại tương tương với database 100 lần => tương tác 10000 lần => Nếu là 1000 entry thì là 1000000 => a*n lần (a là số dữ liệu cần lấy, n là tổng dữ liệu trong table "custom data")=> Hosting gào thét, Database gào thét, người dùng gào thét. Web càng nhiều dữ liệu thì load web càng rùa bò.
Giờ giải quyết như thế nào? @Dai và @tờ ròm bàn nhau cho một cách giải quyết: Tạo một code mới, thay cách truy vấn tới database MySQL - DorewSite.
TWIG PHP chỉ có 1 table là "custom_data"
DorewSite gồm các table khác do người dùng tùy chỉnh: "user", "forum", "chat"... Giống với cách mà người lập trình khác sử dụng.
Lấy nội dung cũng tương tác database 1 lần không chơi a*n như kia.
DorewSite có gì hấy dẫn?
- Chạy được code twig
- Database dễ đọc, dễ quản lý hơn, có thể sử dụng hàm truy vấn MySQL để thao tác với dữ liệu (TWIG PHP không được)
- Không chạy được code Wap4 - Mở ra lối mới
- Nhiều tính năng, hàm hỗ trợ hơn.
Khuyết điểm của DorewSite?
- Không chạy được code Wap4, các bạn phải viết lại bằng hàm của DorewSite
- Phải học hàm DorewSite:https://dorew.gq/forum/319/cac-ham-xu-ly-trong-dorewsite.html
Bạn có thể giúp gì để phát triển DorewSite?
- Hỡ trợ hoàn thiện DorewSite
- Gợi ý tính năng, hàm cho DorewSite
- Chia sẻ template trên nền DorewSite
- Chia sẻ hosting để mọi người lập trình DorewSite
- Ủng hộ, giới thiệu DorewSite
-...
Vd như cái bài viết ghim này
Muốn lấy danh sách bài viết được ghim:
- Wap4: Cách 1: duyệt toàn bộ bài viết ở forum, có ghim=true thì show ra (duyệt toàn bộ bài viết). Tạo entry dsghim gồm các id bài viết có ghim. ------- (Thật ra forum, chat... Đều tương tự)
- DorewSite: Select (array) forum where ghim=true => show ra ngoài, ezgame
Wap4 phải dùng vòng lặp để lấy data, DorewSite dùng sức mạnh của SQL. SQL nhiều trò lắm, nhanh nhanh chuyển sang DorewSite nào
Wap4 lấy 1 dữ liệu lần, buộc phần code ở server phải sử lý (như dùng vòng lập) => chậm, mất công code
DorewSite có sức mạnh của Hệ quản trị cơ sở dữ liệu (DBMS) là MySQL và PHP
Lấy dữ liệu nhẹ nhàng hơn, giảm tải cho hosting