Thứ Tư, 14 tháng 11, 2018

FuelPHP - Định tuyến

Các bản đồ định tuyến yêu cầu một URI đến một phương thức của bộ điều khiển cụ thể. Trong chương này, chúng ta sẽ thảo luận chi tiết về định tuyến trong PHP một cách chi tiết.

Cấu hình

Tệp cấu hình tuyến đường được đặt tại fuel / app / config / routes.php . Tệp routes.php mặc định được định nghĩa như sau:
<?php 
   return array ( 
      '_root_'  => 'welcome/index',   // The default route 
      '_404_'   => 'welcome/404',     // The main 404 route 
      'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), 
   );
Ở đây, _root_ là tuyến mặc định được xác định trước, sẽ được khớp khi ứng dụng được yêu cầu với đường dẫn gốc, / ví dụ http: // localhost: 8080 / . Giá trị của _root_ là bộ điều khiển và hành động được giải quyết khi nó được khớp. chào mừng / index giải quyết cho Controller_Welcome controller và action_index action method. Tương tự, chúng tôi có các tuyến đường dành riêng sau đây.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp
root - Tuyến mặc định khi không có URI nào được chỉ định.

403 - Nó ném khi tìm thấy HttpNoAccessException.

404 - Nó trả về khi không tìm thấy trang.

500 - Nó ném khi HttpServerErrorException được tìm thấy.

Định tuyến đơn giản

Tuyến đường được so sánh với URI yêu cầu. Nếu tìm thấy kết quả phù hợp, yêu cầu sẽ được chuyển đến URI. Định tuyến đơn giản được mô tả như sau,
return array ( 
   'about'  => 'site/about', 
   'login' => 'employee/login', 
);
Ở đây, về các kết quả phù hợp http: // localhost: 8080 / about và giải quyết bộ điều khiển, Controller_Site và phương thức hành động, action_about

đăng nhập phù hợp http: // localhost: 8080 / đăng nhập và giải quyết bộ điều khiển, Controller_Login và phương thức hành động, action_login

==> Phần mềm lập trình PHP chuyên nghiệp.

Định tuyến nâng cao

Bạn có thể bao gồm bất kỳ regex nào vào tuyến đường của mình. Nhiên liệu hỗ trợ các tính năng định tuyến nâng cao sau:

: any - Điều này khớp với bất kỳ thứ gì từ thời điểm đó trên URI, không khớp với "không có gì"

: tất cả mọi thứ - Giống như: bất kỳ, nhưng cũng phù hợp với "không có gì"

: phân khúc - Chỉ khớp với 1 phân đoạn trong URI, nhưng phân đoạn đó có thể là bất kỳ thứ gì

: num - Số này khớp với bất kỳ số nào

: alpha - Điều này khớp với bất kỳ ký tự alpha nào, bao gồm cả UTF-8

: alnum - Điều này khớp với bất kỳ ký tự chữ và số nào, bao gồm cả UTF-8

Ví dụ: tuyến đường sau khớp với URI http: // localhost: 8080 / hello / PHP và xử lý bộ điều khiển, Controller_Welcome và action action_hello
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
Phương thức hành động tương ứng trong Controller_Welcome như sau,
public function action_hello() { 
   $this->name = Request::active()->param('name', 'World'); 
   $message = "Hello, " . $this->name;  
   echo $message; 
}
Ở đây, chúng tôi đã sử dụng lớp Yêu cầu để lấy tham số tên từ URL. Nếu không tìm thấy tên, thì chúng ta đang sử dụng World làm giá trị mặc định. Chúng ta sẽ học lớp Request trong chương Request and Response .

Kết quả

Hành động phương thức HTTP

PHP hỗ trợ các tuyến đường để phù hợp với các hành động tiền tố phương thức HTTP. Sau đây là cú pháp cơ bản.
class Controller_Employee extends Controller { 
   public function get_index() { 
      // called when the HTTP method is GET. 
   }  
   public function post_index(){ 
      // called when the HTTP method is POST. 
   } 
}
Chúng tôi có thể định tuyến các URL của bạn tới các bộ điều khiển và hành động dựa trên động từ HTTP trong tệp cấu hình như sau.
return array ( 
   // Routes GET /employee to /employee/all and POST /employee to /employee/create 
   employee => array(array('GET', new Route(‘employee/all')), array('POST', 
      new Route(‘employee/create'))), 
);

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...