Nên trả về code html hay dùng engine view

như tiêu đề ạ , em có xem 1 số video dạy môn công nghệ phần mềm thì thấy thầy hay dùng cách , viết function trong fuction đó tạo ra chuỗi html với đầy đủ css luôn xong return về chuỗi đó và sau đó chỉ cần đặt chuỗi đó vào vị trí thích hợp trên trang html thôi

1 mặt khác em đang dùng laravel và dùng engine view của nó là blade thì em viết trực tiếp code php trên trang view luôn

em có tự so sánh thì thấy nếu dùng cách dùng engine view thì viết code phần giao diện dễ nhìn và chỉnh sửa hơn nhưng nếu lỡ sau này có lỡ bắt chuyển toàn bộ code này từ php sang java hay .net thì phải viết lại toàn bộ các trang view , trong khi nếu trả về các chuỗi html từ function thì lúc này không phụ thuộc vào các hàm của engine view nên việc chuyển đổi nền tảng nhanh hơn chỉ cần chỉnh sửa cú pháp là xong

không biết trên thực tế sẽ chọn cách nào ? trong trường hợp này em chỉ đang xét đến server render thôi ạ vì frontend em chưa học nhiều …

Xác xuất để người ta chuyển như này là rất thấp , nên ko phải lo đâu.

M viết react vue thì trả về function javascript bên frontend chứ code trên server ko hiểu cấu trúc project kiểu gì. vì dù có trả về html để join thành 1 page thì bạn cũng phải thêm dữ liệu biến các thứ trong đấy :slight_smile: , mà mỗi ngôn ngữ một khác, nên có chuyển sang ngôn ngữ khác cũng phải sửa ốm người. Lúc đấy đập đi xây lại còn nhanh hơn

2 Likes

Theo như bạn nói thì thầy không dạy bằng Laravel, nên không dùng blade được.
Có lẽ thầy đang dạy PHP thuần thôi.
PHP thuần muốn viết sao thì tùy mỗi người.
Còn đối với Laravel thì, chẳng ai viết html/css trong action (function) cả, trong action chỉ xử lý dữ liệu thôi.
Lý do: bạn thử tưởng tượng trang html mà có 1000 dòng đi, nếu không tách ra viết riêng trong view thì cái function của bạn nó sẽ rối và dài đến cỡ nào, khi muốn chỉnh sửa thì ốm mất.
Để dễ quản lý cấu trúc và tái sử dụng được, khi đưa ra view, người ta còn tách ra thành nhiều view nhỏ hơn nữa.

Nếu có viết code trên view, thì chỉ viết những xử lý liên quan đến việc hiển thị,
tuyệt đối không viết các xử lý logic, truy vấn dữ liệu,… các việc đó phải được xử lý trong action.

Và thông thường thì, người ta học xong PHP thuần, viết code một cách hardcore, xây dựng được tư duy lập trình,
sau đó mới học đến framework (Laravel) và thấy “trời ơi, hay quá, framework tách cấu trúc sẵn rồi, tiện ghê”, sẽ có sự tiến hóa về tư tưởng, cảm thấy hợp lý.
Còn bạn học song song 2 cái một lúc (nền tảng/framework), khi tư duy chưa đủ nên 2 luồng tư tưởng bị xung đột.

Nên tiếp tục học hỏi, chặng đường phía trước còn dài.

4 Likes

Khi bạn cần có n giao diện thì làm như bạn các phần của view sẽ tản mác khắp nơi và muốn port cũng khó, cũng không thể mở rộng.

4 Likes

Cách bây giờ mình thường thấy là server side trả về json và client side thì làm giao diện (react, angular), dễ nâng cấp, dễ chia việc.
Cách thứ 2 là dùng engine view như bạn nói, cách này làm cho mấy bạn chuyên mảng thiết kế giao diện hơi khó chịu chút, vì họ phải biết thêm ngôn ngữ “server side”, thứ mà đáng lẽ không cần quan tâm tới.
Cách thứ 3: viết html trên server side và trả về giao diện người dùng, cách này là nỗi ám ảnh thực sự với việc bảo trì website khi có yêu cầu chỉnh sửa giao diện. Ai dùng cách này thì hẳn là project 1 người làm, hoặc ôm trọn bộ module đó.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?