Mảng này là kết quả cuối cùng của quá trình khớp tuyến. Rõ ràng, bộ định tuyến trả về một mảng với các giá trị ký tự đại diện từ tuyến cộng với các khóa cho tuyến và bộ điều khiển Show Nhưng mà. nó thú vị hơn thế một chút. Một cách tuyệt vời để xem cách thực hiện là chơi với một tuyến đường trong YAML. Mở ra mục lục. con đường. /đang chơi. dòng 3 - 4 Đó chính xác là những gì chúng tôi mong đợi. Nhưng trên thực tế, phím mục lục. dòng 2mặc định. _bộ điều khiển. Ứng dụng \ Bộ điều khiển \ Bộ điều khiển mặc định. mục lục Di chuyển qua và làm mới ngay bây giờ. ồ. Chúng tôi nhận được chính xác cùng một mảng. Đúng, phím Đây thực sự là một điểm quan trọng, nhưng để xem tại sao, chúng ta hãy đi xa hơn một chút. Đầu tiên, thêm ký tự đại diện mục lục. con đường. /đang chơi/{id}. dòng 3 - 5 Thông thường, mục đích của mục lục. dòng 2mặc định. dòng 4id. 10 Mát mẻ. Nhưng nếu chúng ta chỉ. phát minh ra một chìa khóa mới và đặt nó ở đây? mục lục. dòng 2mặc định. dòng 4 - 5totally_inventing_this_default. thật Điều này sẽ không thay đổi cách tuyến đường khớp với nhau, nhưng nó sẽ thay đổi những gì chúng ta nhận được trong mảng. Làm mới. Khóa Vì vậy, đây là câu chuyện đầy đủ về kết quả mà quá trình so khớp tuyến đường trả về. nó trả về 20 giá trị mặc định của tuyến đường và bất kỳ giá trị ký tự đại diện nào trong tuyến đường. cộng với phím Với các chú thích về tuyến đường, nó trông hơi khác một chút, nhưng nó hoàn toàn giống nhau. Chúng tôi có thể thêm khóa dòng 1 - 13class ArticleController mở rộng AbstractController{. dòng 16 - 38chức năng công cộng hiển thị(Bài báo $article, SlackClient $slack). dòng 43 - 64} Vậy tại sao việc hiểu chính xác kết quả của quá trình so khớp tuyến đường lại quan trọng đến vậy? . Nhưng trước tiên. trở lại Xóa Hãy sao lưu trong giây lát. đối tượng Một ngoại lệ là
Họ sẽ nghĩ bạn dở hơi. Không, các thuộc tính Yêu cầu là thứ hoàn toàn do Symfony phát minh ra. Mục đích của các thuộc tính yêu cầu là nơi bạn có thể lưu trữ dữ liệu về yêu cầu dành riêng cho ứng dụng của bạn. Vì vậy, lưu trữ bộ điều khiển, ví dụ, là một sự phù hợp hoàn hảo. Đó hoàn toàn là một khái niệm của Symfony Dù sao đi nữa, mảng Nó cũng đặt một thuộc tính khác là Vâng. Trong thực tế, chúng ta hãy xem điều này. Công văn trên, dòng 1 - 39class HttpKernel thực hiện HttpKernelInterface, TerminableInterface{. dòng 42 - 114hàm riêng handleRaw(Request $request, int $type = self. MASTER_REQUEST). Phản ứng{. dòng 117 - 120dump($request->attributes->all());$this->dispatcher->dispatch($event, KernelEvents. YÊU CẦU);dump($request->attributes->all());die;. dòng 125 - 169}. dòng 171 - 284} Xóa tất cả mã gỡ lỗi đó Trước khi chúng ta tìm hiểu cách sử dụng các thuộc tính yêu cầu, tôi muốn cho bạn xem một thứ khá thú vị. Chúng ta sẽ xem xét một tệp bộ đệm. Tệp này được Symfony tạo tự động và là kết quả cuối cùng của tất cả các tuyến trong ứng dụng của chúng tôi. Tập tin này là điên rồ. Sau khi đọc các tuyến đường của chúng tôi, Symfony tạo một danh sách lớn các biểu thức chính quy và tuyến đường nào sẽ khớp với phần nào và kết xuất chúng vào tệp này. Điều này được sử dụng bởi quá trình so khớp tuyến đường để nó cực kỳ nhanh. Của nó. khá tuyệt vời Dù sao, tiếp theo. Hãy xem tầm quan trọng của các thuộc tính Yêu cầu đó bằng cách tiếp tục thực hiện phương pháp Làm cách nào chúng tôi có thể nhận được các tham số yêu cầu trong Symfony?sử dụng Symfony\Thành phần\HttpFoundation\Request;
Làm cách nào để lấy dữ liệu từ yêu cầu trong Symfony?Nếu chúng ta gửi một yêu cầu POST với tiêu đề Kiểu nội dung được đặt thành application/json và phần nội dung yêu cầu được đặt thành chuỗi JSON , thì bộ điều khiển Symfony của chúng ta sẽ nhận được .
Làm cách nào để gọi API trong Symfony?sử dụng Symfony\Thành phần\HttpClient\HttpClient; . tạo ra(); . //api. github. com/repos/symfony/symfony-docs'); |