Tôi nghĩ rằng câu hỏi của bạn có thể khá cụ thể đối với PHP, vì tôi không thể thấy bất kỳ công nghệ back-end nào khác mà bạn đề cập đến được sử dụng như thế này.
PHP là một ví dụ buồn cười vì nó có thể (theo cách khá xấu xí mà tôi có thể thêm vào) được xem như một ngôn ngữ tất cả trong một liên quan đến rất nhiều dự án web. Bạn có thể thực hiện các tác vụ " back-end " truyền thống của mình - chẳng hạn như các thao tác tệp và cơ sở dữ liệu, đồng thời xây dựng đánh dấu " front-end ".
Điều này rõ ràng có thể dẫn đến một mớ hỗn độn spaghetti nơi không có sự tách biệt thực sự của mối quan tâm, vì vậy nó thực sự nên được nhăn mặt trong tâm trí của tôi. Đối với một ví dụ tuyệt vời, nếu bạn duyệt nguồn wordpress, bạn có thể thường xuyên bị lạc - và đó là một dự án mà tôi đổ lỗi cho ngôn ngữ, tổ chức của cơ sở mã thực sự rất tốt.
Điều này có thể được khắc phục, bằng cách sử dụng một " công cụ tạo khuôn mẫu " (như Smarty )) - nhưng vẫn là PHP đang xây dựng "front-end" trong khi cũng cung cấp chức năng "back-end". Đây là một quyết định có chủ ý đằng sau thiết kế của PHP, tuy nhiên, sau tất cả là một " bộ xử lý siêu văn bản "!
Vì vậy, PHP có thể dễ dàng phù hợp với cả hai cách sử dụng " front-end " và " back-end ", điều này sẽ làm rõ ví dụ của bạn. Do đó, rất có thể bạn đúng khi PHP sẽ xử lý và xây dựng tất cả các đánh dấu cho một giao diện người dùng, nhưng nó sẽ đưa ra yêu cầu ở một nơi khác để thu thập dữ liệu cần thiết - rất có thể là một dịch vụ được viết bằng một trong các ngôn ngữ nói trên .
Cá nhân, tôi cảm thấy toàn bộ thuật ngữ "back-end" và "front-end" là một chút .. có lẽ đã lỗi thời. Tôi muốn thay mọi thứ chỉ được đề cập đến phía máy khách và phía máy chủ; sau đó không có sự mơ hồ thực sự. *
Gần đây tôi đã thấy một thông số kỹ thuật khách yêu cầu một hệ thống back-end được viết bằng node.js và các công cụ liên quan, nhưng muốn bản dựng front-end sử dụng khung công tác PHP (Laravel). Điều này đi kèm với nhiều chi phí liên quan, và trong suy nghĩ của tôi - không phải là một giải pháp tao nhã và có thể gây ra một vài vấn đề công bằng.
Nói một cách cá nhân, các loại cấu hình này có vẻ như ai đó đã vô tình đưa PHP vào một ngăn xếp khác - điều đó có nghĩa là cần nhiều tài nguyên hơn thực tế cần thiết, nhân viên bảo trì cần tiếp xúc với nhiều công nghệ hơn và có nhiều điểm thất bại hơn.
Hơn nữa, tôi cũng nghĩ rằng có rất ít kịch bản đảm bảo loại ngăn xếp trung gian này; hầu hết các ngôn ngữ / khung công tác back-end hoàn toàn có khả năng tạo ra đánh dấu cần thiết cho giao diện người dùng. Mặc dù tôi đứng để được sửa chữa ở đó.
* Mặc dù, để đặt câu hỏi của bạn lên đầu .. Còn các hệ thống back-end được xây dựng bằng Javascript thì sao? (node.js;))
Biên tập:
Sau khi đọc một bình luận của @itsbruce, tôi đã quyết định làm rõ ý của tôi về sự mơ hồ của thuật ngữ "front-end" / "back-end" của tôi.
Theo truyền thống, thuật ngữ này sẽ ổn, các ứng dụng web về mặt kiến trúc đơn giản hơn rất nhiều - và tôi dám nói là nó rất nhiều. Tôi nghĩ rằng "Phía máy chủ" và "Phía máy khách" sẽ rõ ràng hơn rất nhiều và điều này trở nên rõ ràng hơn khi xu hướng hiện nay là đẩy nhiều xử lý và logic vào máy khách đang trở nên phổ biến.
Việc xử lý dữ liệu phía máy khách trở nên chấp nhận được (chỉ cần nhìn vào một số khung javascript hiện đang là xu hướng), nhưng đó có thực sự là mặt trước? Người dùng không nhìn thấy nó, họ thấy kết quả của nó - và theo tiêu chí truyền thống thường được xem là "back-end"; nhưng điều này đang xảy ra trong trình duyệt bây giờ ..
Tương tự, và cực kỳ phù hợp với câu hỏi này, liệu xây dựng đánh dấu trong PHP có thực sự là một nhiệm vụ đầu cuối không? Tôi nghi ngờ điều đó, một trình duyệt nhanh của bảng công việc cho thấy một vài vị trí nhà phát triển front-end mong đợi kinh nghiệm hoặc kiến thức về PHP; Tuy nhiên, trực giác sẽ gợi ý rằng việc đánh dấu cho giao diện vốn dĩ là giao diện người dùng.
Chính thực tế là câu hỏi này tồn tại như một ví dụ về cách " front-end " và " back-end " vốn đã mơ hồ, và sẽ tiếp tục như vậy.
Bằng cách coi các tác vụ là "phía máy chủ" hoặc "phía máy khách" mà sự mơ hồ bị mất, bạn biết mã đang thực thi ở đâu và ngôn ngữ nào sẽ được sử dụng. Nếu bạn nói " front-end " trong ví dụ mà OP đã cung cấp, tôi nghi ngờ nhiều người sẽ nói " Ồ, vậy PHP trên máy chủ phải không? ".