So với khoảng 10 năm trước, tôi đã lưu ý một sự thay đổi đối với các khung sử dụng kiểu định tuyến tách riêng đường dẫn URL khỏi hệ thống tệp. Điều này thường được thực hiện với sự trợ giúp của mẫu điều khiển phía trước.
Cụ thể, khi trước đó, đường dẫn URL được ánh xạ trực tiếp vào hệ thống tệp và do đó phản ánh các tệp và thư mục chính xác trên đĩa, ngày nay, các đường dẫn URL thực tế được lập trình để được dẫn đến các lớp cụ thể thông qua cấu hình và do đó, không còn phản ánh tệp thư mục hệ thống và cấu trúc tập tin.
Câu hỏi
Làm thế nào và tại sao điều này trở nên phổ biến? Làm thế nào và tại sao nó lại quyết định rằng nó "tốt hơn" đến mức mà phương pháp tiếp cận trực tiếp với tập tin đã từng bị bỏ rơi một cách hiệu quả?
Câu trả lời khác
Có một câu trả lời tương tự ở đây đi sâu vào khái niệm tuyến đường và một số lợi ích và nhược điểm: Với các khung công tác PHP, tại sao khái niệm "tuyến đường" được sử dụng?
Nhưng nó không giải quyết các khía cạnh thay đổi lịch sử, hoặc làm thế nào hoặc tại sao sự thay đổi này dần dần xảy ra, nơi mà bất kỳ dự án mới nào hiện nay đều sử dụng mẫu kiểu định tuyến mới này và tệp trực tiếp bị lỗi thời hoặc bị bỏ rơi.
Ngoài ra, hầu hết những lợi ích và hạn chế được đề cập, dường như không đủ quan trọng để đảm bảo một sự thay đổi toàn cầu như vậy. Lợi ích duy nhất mà tôi có thể thấy khi điều khiển thay đổi này có lẽ là ẩn hệ thống tệp / thư mục khỏi người dùng cuối và cũng thiếu ?param=value¶m2=value
, điều này làm cho các URL trông gọn gàng hơn. Nhưng đó có phải là lý do duy nhất cho sự thay đổi? Và nếu có, tại sao những lý do đằng sau nó?
Ví dụ:
Tôi quen thuộc nhất với các khung công tác PHP và nhiều khung công tác hiện đại phổ biến sử dụng phương pháp định tuyến tách rời này. Để làm cho nó hoạt động, bạn thiết lập viết lại URL trong Apache hoặc máy chủ web tương tự, nơi chức năng ứng dụng web thường không còn được kích hoạt thông qua đường dẫn URL trực tiếp đến tệp.
Biểu cảm Zend
https://docs.zendframework.com/zend-expressive/features/router/aura/
https://docs.zendframework.com/zend-expressive/features/router/fast-route/
https: //docs.zendframework. com / zend-expressive / features / router / zf2 /Khung Zend
https://docs.zendframework.com/zend-mvc/routing/
Ấu trùng
https://laravel.com/docs/5.5/outout
CakePHP