Khi nói đến phần phụ trợ, các nhà phát triển cuối cùng gặp phải các tuyến đường. Các tuyến có thể được coi là xương sống của phần phụ trợ vì mọi yêu cầu mà máy chủ nhận được đều được chuyển hướng đến bộ điều khiển thông qua danh sách định tuyến ánh xạ các yêu cầu tới bộ điều khiển hoặc hành động Show
Laravel ẩn nhiều chi tiết triển khai cho chúng tôi và đi kèm với rất nhiều cú pháp để giúp cả nhà phát triển mới và có kinh nghiệm phát triển ứng dụng web của họ Hãy xem kỹ cách quản lý route trong Laravel Backend Routing và Cross-Site Scripting trong LaravelTrên một máy chủ, tồn tại cả các tuyến đường công khai và riêng tư. Các tuyến đường công khai có thể là một nguyên nhân gây lo ngại do khả năng xảy ra kịch bản chéo trang (XSS), một kiểu tấn công tiêm nhiễm có thể khiến bạn và người dùng của bạn dễ bị tấn công bởi các tác nhân độc hại Vấn đề là người dùng có thể được chuyển hướng từ một tuyến đường không yêu cầu mã thông báo phiên sang một tuyến đường yêu cầu — và họ sẽ vẫn có quyền truy cập mà không cần mã thông báo Đi sâu vào 'xương sống của phần phụ trợ' trong hướng dẫn này về Laravel Routing 🚀Nhấp để TweetCách đơn giản nhất để giải quyết vấn đề này là thực thi tiêu đề HTTP mới, thêm "liên kết giới thiệu" vào tuyến đường để giảm thiểu tình huống này Xem cách Kinsta chống lại đối thủ. Đối chiếu
Định tuyến cơ bản của LaravelTrong Laravel, các tuyến đường cho phép người dùng định tuyến yêu cầu thích hợp đến bộ điều khiển mong muốn. Laravel Route cơ bản nhất chấp nhận Mã định danh tài sản thống nhất (đường dẫn tuyến đường của bạn) và một bao đóng có thể là cả hàm hoặc lớp Trong Laravel, các route được tạo bên trong web. php và api. tập tin php. Laravel đi kèm với hai route theo mặc định. một cho WEB và một cho API Các tuyến này nằm trong thư mục routes/, nhưng chúng được tải trong Nhà cung cấp/RouteServiceProvider. php Trạng thái mặc định của nhà cung cấp dịch vụ route của LaravelThay vì làm điều này, chúng ta có thể tải các tuyến đường trực tiếp bên trong RouteServiceProvider. php, bỏ qua hoàn toàn các tuyến/thư mục Đang tải các tuyến Laravel trực tiếp trong nhà cung cấpchuyển hướngKhi chúng tôi xác định tuyến đường, chúng tôi thường muốn chuyển hướng người dùng truy cập tuyến đường đó và lý do cho điều này rất khác nhau. Có thể là do đó là một tuyến đường không được dùng nữa và chúng tôi đã thay đổi phụ trợ hoặc máy chủ hoặc có thể là do chúng tôi muốn cài đặt xác thực hai yếu tố (2FA), v.v. Laravel có một cách dễ dàng để làm điều này. Nhờ tính đơn giản của khung, chúng ta có thể sử dụng phương thức chuyển hướng trên mặt tiền Tuyến đường, chấp nhận tuyến đường vào và tuyến đường được chuyển hướng đến Theo tùy chọn, chúng tôi có thể cung cấp mã trạng thái cho chuyển hướng làm tham số thứ ba. Phương thức 1 sẽ thực hiện tương tự như phương thức 2, ngoại trừ nó sẽ luôn trả về mã trạng thái 301
Bên trong các tuyến đường chuyển hướng, chúng tôi bị cấm sử dụng các từ khóa “destination” và “status” làm tham số vì chúng được đặt trước bởi Laravel
Lượt xemLượt xem là. lưỡi. php mà chúng tôi sử dụng để hiển thị giao diện người dùng của ứng dụng Laravel của chúng tôi. Nó sử dụng công cụ tạo khuôn mẫu lưỡi dao và đó là cách mặc định để xây dựng một ứng dụng toàn ngăn xếp chỉ bằng Laravel Nếu chúng tôi muốn tuyến đường của mình trả về một chế độ xem, chúng tôi chỉ cần sử dụng phương thức chế độ xem trên Mặt tiền tuyến đường. Nó chấp nhận một tham số tuyến đường, tên chế độ xem và một mảng giá trị tùy chọn được chuyển đến chế độ xem
Giả sử chế độ xem của chúng ta muốn nói “Xin chào, 3” bằng cách chuyển một mảng tùy chọn với tham số đó. Chúng ta có thể làm điều đó với đoạn mã sau (nếu thiếu tham số được yêu cầu trong chế độ xem, yêu cầu sẽ thất bại và đưa ra lỗi)
Danh sách tuyến đườngKhi ứng dụng của bạn tăng kích thước, số lượng yêu cầu cần được định tuyến cũng tăng theo. Và với một lượng lớn thông tin có thể dẫn đến sự nhầm lẫn lớn Đây là nơi mà 4 có thể giúp chúng ta. Nó cung cấp tổng quan về tất cả các tuyến được xác định trong ứng dụng, phần mềm trung gian và bộ điều khiển của chúng
Nó sẽ hiển thị danh sách tất cả các tuyến đường không có phần mềm trung gian. Đối với điều này, chúng ta phải sử dụng cờ 5
Trong trường hợp bạn có thể đang sử dụng thiết kế hướng tên miền nơi các tuyến đường của bạn có tên cụ thể trong đường dẫn của chúng, bạn có thể tận dụng khả năng lọc của lệnh này như sau
Điều này sẽ chỉ hiển thị các tuyến bắt đầu bằng api/account Mặt khác, chúng ta có thể hướng dẫn Laravel loại trừ hoặc bao gồm các route do bên thứ ba xác định bằng cách sử dụng các tùy chọn 6 hoặc 7Tham số tuyến đườngĐôi khi, bạn có thể cần nắm bắt các phân đoạn của URI với tuyến đường, chẳng hạn như ID người dùng hoặc mã thông báo. Chúng ta có thể làm điều này bằng cách xác định tham số route, tham số này luôn được đặt trong dấu ngoặc nhọn ( 8) và chỉ bao gồm các ký tự chữ cáiNếu các route của chúng ta có các phụ thuộc bên trong các callback của chúng, bộ chứa dịch vụ của Laravel sẽ tự động đưa chúng vào
Thông số bắt buộcCác tham số bắt buộc của Laravel là các tham số trong route mà chúng ta không được phép bỏ qua khi thực hiện cuộc gọi. Nếu không, một lỗi sẽ được ném
Bây giờ bên trong GetGdprDataController. php, chúng ta sẽ có quyền truy cập trực tiếp vào tham số $userId Triển khai ứng dụng của bạn lên Kinsta - Bắt đầu với Khoản tín dụng $20 ngay bây giờChạy nút của bạn. js, Python, Go, PHP, Ruby, Java và Scala, (hoặc hầu hết mọi ứng dụng khác nếu bạn sử dụng Dockerfiles tùy chỉnh của riêng mình), trong ba bước đơn giản Triển khai ngay bây giờ và nhận $20 giảm giá 0Một tuyến đường có thể nhận bất kỳ số lượng tham số nào. Chúng được đưa vào trong các cuộc gọi lại/bộ điều khiển tuyến đường dựa trên thứ tự mà chúng được liệt kê 1Thông số tùy chọnTrong trường hợp chúng tôi muốn làm điều gì đó trên một tuyến đường khi chỉ có một tham số và không có gì khác, tất cả đều không ảnh hưởng đến toàn bộ ứng dụng, chúng tôi có thể thêm một tham số tùy chọn. Các tham số tùy chọn này được biểu thị bằng dấu 9 được thêm vào chúng 2Ký tự đại diện tuyến đườngLaravel cung cấp một cách để chúng tôi lọc các tham số tùy chọn hoặc bắt buộc của chúng tôi sẽ trông như thế nào Giả sử chúng tôi muốn một chuỗi ID người dùng. Chúng tôi có thể xác thực nó như vậy ở cấp độ tuyến đường bằng cách sử dụng phương pháp 0Phương thức 0 chấp nhận tên của tham số và quy tắc regex sẽ được áp dụng khi xác thực. Theo mặc định, nó nhận tham số đầu tiên, nhưng nếu có nhiều tham số, chúng ta có thể truyền một mảng với tên của tham số là khóa và quy tắc là giá trị, và Laravel sẽ phân tích tất cả chúng cho chúng ta 3Chúng tôi có thể tiến thêm một bước nữa và áp dụng xác thực trên tất cả các tuyến đường trong ứng dụng của mình bằng cách sử dụng phương pháp 2 trên mặt tiền 3 4Điều này sẽ xác thực mọi tham số 4 với biểu thức chính quy này. Và khi chúng tôi xác định nó, nó sẽ tự động được áp dụng cho tất cả các tuyến sử dụng tên tham số đóNhư chúng ta có thể thấy, Laravel đang sử dụng ký tự 5 làm dấu phân cách trong đường dẫn. Nếu chúng tôi muốn sử dụng nó trong đường dẫn, chúng tôi phải cho phép rõ ràng nó là một phần của trình giữ chỗ của chúng tôi bằng cách sử dụng biểu thức chính quy 0 5Nhược điểm duy nhất là nó sẽ chỉ được hỗ trợ trong đoạn đường cuối cùng Đấu tranh với thời gian chết và các vấn đề về WordPress? . Kiểm tra các tính năng của chúng tôi Tuyến đường được đặt tênNhư tên gợi ý, chúng tôi có thể đặt tên cho các tuyến đường, giúp thuận tiện cho việc tạo URL hoặc chuyển hướng cho các tuyến đường cụ thể Cách tạo các tuyến đường được đặt tênMột cách đơn giản để tạo một tuyến đường được đặt tên được cung cấp bởi phương thức 7 được xâu chuỗi trên mặt tiền 3. Tên của mỗi tuyến đường phải là duy nhất 6Nhóm tuyến đườngCác nhóm tuyến đường cho phép bạn chia sẻ các thuộc tính tuyến đường như phần mềm trung gian trên một số lượng lớn tuyến đường mà không cần xác định lại nó trên mỗi tuyến đường Phần mềm trung gianChỉ định một phần mềm trung gian cho tất cả các tuyến mà chúng tôi có cho phép chúng tôi kết hợp chúng trong một nhóm, trước tiên bằng cách sử dụng phương pháp 9. Một điều cần xem xét là các phần mềm trung gian được thực thi theo thứ tự mà chúng được áp dụng cho nhóm 7Bộ điều khiểnKhi một nhóm sử dụng cùng một bộ điều khiển, chúng ta có thể sử dụng phương thức 0 để xác định bộ điều khiển chung cho tất cả các tuyến trong nhóm đó. Bây giờ chúng ta phải chỉ định phương thức mà tuyến đường sẽ gọi 8Định tuyến tên miền phụTên miền phụ là một phần thông tin bổ sung được thêm vào đầu tên miền của trang web. Điều này cho phép các trang web phân tách và sắp xếp nội dung của chúng cho các chức năng cụ thể, chẳng hạn như cửa hàng trực tuyến, blog, bản trình bày, v.v. với phần còn lại của trang web Các tuyến đường của chúng tôi có thể được sử dụng để xử lý định tuyến tên miền phụ. Chúng tôi có thể bắt tên miền và một phần của tên miền phụ để sử dụng trong bộ điều khiển và định tuyến của chúng tôi. Với sự trợ giúp của phương thức 1 trên mặt tiền 3, chúng ta có thể nhóm các tuyến đường của mình dưới một miền duy nhất 9Tiền tố và tiền tố tênBất cứ khi nào chúng ta có một nhóm các route, thay vì sửa đổi từng cái một, chúng ta có thể sử dụng các tiện ích bổ sung mà Laravel cung cấp, chẳng hạn như 3 và 7 trên mặt tiền 3Phương thức 3 có thể được sử dụng để thêm tiền tố cho mỗi tuyến đường trong nhóm bằng một URI nhất định và phương thức 7 có thể được sử dụng để thêm tiền tố cho mỗi tên tuyến đường bằng một chuỗi đã choĐiều này cho phép chúng tôi tạo những thứ mới như các tuyến quản trị mà không bắt buộc phải sửa đổi từng tên hoặc tiền tố để xác định chúng 0Giờ đây, các URI cho các tuyến đường này sẽ là 8, 9, 0 và các tên 1, 2 và 3Bộ nhớ đệm định tuyếnKhi triển khai ứng dụng lên các máy chủ sản xuất, một nhà phát triển Laravel giỏi sẽ tận dụng được route cache của Laravel Bộ nhớ đệm định tuyến là gì?Bộ nhớ đệm định tuyến giảm lượng thời gian cần thiết để đăng ký tất cả các tuyến ứng dụng Đang chạy 4, một phiên bản của 5 được tạo và sau khi được mã hóa, đầu ra tuần tự hóa được ghi vào 6Bây giờ bất kỳ yêu cầu nào khác sẽ tải tệp bộ đệm này nếu nó tồn tại. Do đó, ứng dụng của chúng ta không còn phải phân tích cú pháp và chuyển đổi các mục từ tệp tuyến đường thành các đối tượng 7 trong 5Tại sao sử dụng bộ nhớ đệm định tuyến lại quan trọngBằng cách không sử dụng tính năng route caching mà Laravel cung cấp, ứng dụng của bạn có nguy cơ chạy chậm hơn mức có thể, điều này có thể làm giảm doanh thu, tỷ lệ giữ chân người dùng và niềm tin vào thương hiệu của bạn Tùy thuộc vào quy mô dự án của bạn và có bao nhiêu tuyến đường, việc chạy một lệnh lưu vào bộ nhớ đệm tuyến đường đơn giản có thể tăng tốc ứng dụng của bạn ở bất kỳ đâu từ 130% đến 500% — một mức tăng lớn mà gần như không cần nỗ lực Tóm lượcĐịnh tuyến là xương sống của phát triển phụ trợ. Laravel framework vượt trội về điều này bằng cách cung cấp một cách chi tiết để xác định và quản lý các route. Làm quen với định tuyến Laravel trong hướng dẫn kỹ lưỡng này 🛠Nhấp để Tweet Sự phát triển thực sự có thể truy cập được cho tất cả mọi người và giúp tăng tốc ứng dụng chỉ nhờ vào việc nó được xây dựng trong Laravel Bạn đã gặp những thủ thuật và mẹo nào khác liên quan đến Laravel route? Nhận tất cả các ứng dụng, cơ sở dữ liệu và trang web WordPress của bạn trực tuyến và dưới một mái nhà. Nền tảng đám mây hiệu suất cao, đầy đủ tính năng của chúng tôi bao gồm
Hãy tự kiểm tra với $20 trong tháng đầu tiên của Lưu trữ ứng dụng hoặc Lưu trữ cơ sở dữ liệu. Khám phá kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm thấy sự phù hợp nhất của bạn Định tuyến hoạt động như thế nào trong php?Định tuyến là điều xảy ra khi ứng dụng xác định bộ điều khiển và hành động nào được thực thi dựa trên URL được yêu cầu . Nói một cách đơn giản, đó là cách khung nhận được từ http. // localhost/người dùng/danh sách. html vào bộ điều khiển Người dùng và hành động list().
Đâu là đăng ký route trong Laravel?Các tuyến này được tìm thấy trong thư mục nhà cung cấp Illuminate\Routing\Router . Tuy nhiên, đừng ghi đè lên bất kỳ thứ gì trong thư mục nhà cung cấp, nếu không khi bạn cập nhật, chúng sẽ bị xóa. Để ghi đè các tuyến đường này, chỉ cần khai báo chúng trong các tuyến đường của bạn.
Làm cách nào để tạo định tuyến trong php?Chuyển hướng tất cả các yêu cầu HTTP tới bộ định tuyến
. Chúng tôi giới hạn quyền truy cập vào các tệp vật lý bằng chỉ thị Apache RewriteCond. Sau đó, chúng tôi chuyển hướng tất cả các yêu cầu sắp tới tới chỉ mục. tập tin php.
Làm cách nào tôi có thể biết lộ trình của mình trong Laravel?Bạn có thể sử dụng các phương thức current, currentRouteName và currentRouteAction trên mặt tiền Tuyến đường để truy cập thông tin về tuyến đường xử lý yêu cầu đến. $route = Tuyến đường. hiện hành(); . currentRouteName(); . currentRouteAction(); |