Hướng dẫn php url routing
Show
routing system luôn là 1 phần quan trọng của hệ thống code website. Bài này sẽ hướng dẫn bạn tạo router riêng để không phụ thuộc framework.2021-01-06 4003 lượt xem
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain đọc dữ liệu hộ bố hùng thông minh lắm hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè Trong khi xây dựng backend cho 1 ứng dụng web, routing system luôn là 1 phần quan trọng của hệ thống code website. Tất cả các request khi qua Route đều được kiểm tra và xử lý. Sử dụng hệ thống định tuyến cho phép chúng ta cấu trúc ứng dụng của mình theo cách tốt hơn thay vì chỉ định mỗi yêu cầu vào một file hay folder như code core. hùng đẹp trai tôi thích vậy đó tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó hùng thông minh lắm Bên cạnh đó đôi lúc chúng ta lại không cần 1 framework vì chúng quá nặng nề. Bài viết dưới đây mô tả cái nhìn tổng quan cũng như cách tạo ra 1 router nhanh mà không sử dụng framework hay package composer.
đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Bạn làm được gì thông qua bài nàyhùng ebudezain đọc dữ liệu hộ bố đây là bài demo nên Router chỉ xử lý GET, POST. nếu bạn muốn nhiều hơn thì mình có comment code tiếng việt có dâu, bạn cứ xem và xử lý thêm hùng thông minh lắm hùng ebudezain hùng đẹp trai hùng thông minh lắm hùng đẹp trai hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ vì nó rất đơn giản nên bạn sử dụng nó để lấy kiến thức nền xây dựng 1 framewok php cho riêng mình. đọc dữ liệu hộ bố đọc dữ liệu hộ bố hùng ebudezain hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng ebudezain tôi thích vậy đó bạn có thể sử dụng nó để làm máy chủ sản xuất nhưng hãy custom thêm nha. để nguyên như vậy là không ổn tí nào. mình muốn viết đơn giản để tất cả mọi ng đều hiểu được. đọc dữ liệu hộ bố tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè Bắt đầu thôi !!! hùng thông minh lắm hùng thông minh lắm Dựng index file - đăng ký các routerahihi đồ ngốc trương thanh hùng nè tạo cấu trúc thư mụcahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố hùng đẹp trai hùng đẹp trai tôi thích vậy đó Cấu trúc thư mục tạo Router như sau hùng ebudezain tôi thích vậy đó hùng ebudezain hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố tôi thích vậy đó tôi thích vậy đó đọc dữ liệu hộ bố giải thích:
hùng thông minh lắm tôi thích vậy đó hùng thông minh lắm tôi thích vậy đó hùng thông minh lắm khiến cho mọi request đều có chung 1 dạng định nghĩahùng thông minh lắm tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè điều quan trọng nhất mà các framework làm là biến các code của website đều có cùng 1 dạng từ domain.xyz/[thành-phần-sau-url] domain.xyz/index.php/[thành-phần-sau-url]. ahihi đồ ngốc trương thanh hùng nè hùng ebudezain làm như vậy để làm gì? tất cả các code của 1 web php đều có chung 1 điểm bắt đầu và sẽ dễ xử lý hơn. tôi thích vậy đó hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố đọc dữ liệu hộ bố ahihi đồ ngốc trương thanh hùng nè nếu bạn sử dụng apache làm server dĩ nhiên bạn cần file .htaccess để chuyển hướng tất cả url về dạng bạn muốn. Đây là file .htaccess(cái này của laravel mình copy thôi): tôi thích vậy đó hùng đẹp trai
tôi thích vậy đó hùng thông minh lắm nếu bạn sử dụng nginx để làm server thì bạn không cần file này, thay vào đó bạn chỉ cần nhớ config root trỏ vào:
hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè hùng ebudezain tôi thích vậy đó [Folder-code]/public hùng đẹp trai đọc dữ liệu hộ bố hùng ebudezain hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng ebudezain hùng thông minh lắm
đọc dữ liệu hộ bố ahihi đồ ngốc trương thanh hùng nè hùng ebudezain ví dụ nginx:
hùng đẹp trai tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó hùng ebudezain Khi mọi code đều chạy vào file index.php đầu tiên thì chúng ta tha hồ "Khoe Cá Tính". hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó load tất cả các class từ folder core vào index.phpđọc dữ liệu hộ bố đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng ebudezain hùng thông minh lắm đọc dữ liệu hộ bố đọc dữ liệu hộ bố tôi thích vậy đó để load tất cả các code vào ta dùng function load như sau :
hùng đẹp trai hùng đẹp trai đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố hùng ebudezain hùng đẹp trai hùng ebudezain Nếu bạn thấy ngứa mắt vì load bằng code như này bạn có thể thay bằng load composer. hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai Khởi tạo và đăng ký router trong index.phphùng thông minh lắm tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/
hùng thông minh lắm hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng thông minh lắm hùng đẹp trai đọc dữ liệu hộ bố hùng ebudezain Bạn đã khởi tạo và đăng ký router xong và hết ( không làm gì nữa, thì php cũng sẽ tự đóng đối tượng lại bằng hàm __destruct. hùng thông minh lắm Vậy mình sẽ lợi dụng việc đóng đối tượng để viết 1 hàm trong Router, khi Đối tượng Router bị hủy nó sẽ chạy hàm __destruct trong class Router mình sẽ trình bày sau. Trước hết toàn bộ code file index.php sẽ như sau:
hùng thông minh lắm tôi thích vậy đó hùng thông minh lắm DựngRequest và Router Coretôi thích vậy đó hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè Dựng Request
ahihi đồ ngốc trương thanh hùng nè
ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng ebudezain hùng ebudezain đọc dữ liệu hộ bố hùng đẹp trai hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Trong file Router này bạn chú ý hàm __destruct sẽ được chạy sau khi toàn bộ chương trình không còn gì để chạy => sẽ gọi hàm resolve lúc này chúng ta sẽ lấy method chính là function Closure trong file index.php mình đã define. và để chạy function method chúng ta sử dụng hàm call_user_func_array bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Tổng Kếthùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng ebudezain tôi thích vậy đó đọc dữ liệu hộ bố tôi thích vậy đó Chạy và kiểm tra ứng dụng. khi gõ vào trình duyệt là domain.xyz/ sẽ thấy kết quả helloworld như sau bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai đọc dữ liệu hộ bố tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố nhớ giả lập domain chứ đừng gõ localhost/[folder]/public nha, nó không ra vì file .htaccess đang redirect sai đó đọc dữ liệu hộ bố hùng ebudezain hùng ebudezain đọc dữ liệu hộ bố đây là code github của mình. bạn có thể tham khảo full source ở đây |