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 4579 lượt xem 4579 lượt xem
- Trang Chủ
- [PHP CƠ BẢN] PHP CORE - Lập trình căn bản với php
- tạo router đơn giản trong php giống với framework
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
hùng đẹp trai
hùng đẹp trai
hùng đẹp trai
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
hùng đẹp trai
- hùng ebudezain
- ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
hùng ebudezain
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
tôi thích vậy đó
hùng đẹp trai
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.
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.
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng đẹp trai
tôi thích vậy đó
hùng ebudezain
hùng đẹp trai
hùng ebudezain
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
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 thông minh lắm
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
hùng đẹp trai
hùng đẹp trai
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
hùng đẹp trai
bài viết được viết bởi trương thanh hùng //ebudezain.com/
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
hùng đẹp trai
tôi thích vậy đó
tôi thích vậy đó
hùng ebudezain
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.
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.
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. nên để trong folder public để tăng tính bảo mật giống như hầu hết các framework php khác.
- Bạn cần chạy phiên bản PHP 5 trở lên trên máy phát triển của mình. .htaccess. file này khi người dùng gõ vào folder trong public thì sẽ ngăn không cho hiện full các file tĩnh
- Kiến thức PHP cơ bản và hiểu 1 chút về lập trình hướng đối tượng.
- Bạn làm được gì thông qua bài này để xây dựng đối tượng request, mỗi 1 lần người dùng truy cập vào website sẽ tương ứng 1 request. và request đó sẽ mang param tương ứng. ta nên xây dựng 1 đối tượng request riêng.
- đâ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 là file định nghĩa cách thức hoạt động của Router, nhờ có file Router và sự kết hợp của requets chúng ta có thể tìm đúng Action tương ứng để chạy
bài viết được viết bởi trương thanh hùng //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 //ebudezain.com/
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.
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
hùng đẹp trai
hùng ebudezain
hùng đẹp trai
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
tôi thích vậy đó
hùng ebudezain
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nèindex.php/[thành-phần-sau-url].
tôi thích vậy đó
hùng đẹp trai
tôi thích vậy đó
tôi thích vậy đó
hùng ebudezain
tôi thích vậy đó
hùng ebudezain
hùng ebudezain
hùng ebudezain
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.
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 ebudezain
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
đọc dữ liệu hộ bố
đọc dữ liệu hộ bố
hùng đẹp trai
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 đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng thông minh lắm
đọc dữ liệu hộ bố
Options -MultiViews -Indexes
RewriteEngine On
# Handle Authorization Header
RewriteCond %{Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} [.+]/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
hùng đẹp trai
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
đọc dữ liệu hộ bố
[Folder-code]/public
tôi thích vậy đó
tôi thích vậy đó
hùng thông minh lắm
đọc dữ liệu hộ bố
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 ebudezain
server { listen 80; server_name domain-cua-ban.com; root /var/www/SITE-PHP-ROUTER;
location / { index index.html index.htm; } }
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
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 ebudezain
hùng đẹp trai
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
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 //ebudezain.com/
tôi thích vậy đó
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 //ebudezain.com/
hùng thông minh lắm
function coreAutoload[$class]
{
$root = '../core/';
$prefix = 'Core\\';
// remove prefix
$classWithoutPrefix = preg_replace['/^' . preg_quote[$prefix] . '/', '', $class];
// Thay thế \ thành /
$file = str_replace['\\', DIRECTORY_SEPARATOR, $classWithoutPrefix] . '.php';
$path = $root . $file;
if [file_exists[$path]] {
require_once $path;
}
}
spl_autoload_register['coreAutoload'];
bài viết được viết bởi trương thanh hùng //ebudezain.com/
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
đọc dữ liệu hộ bố
bài viết được viết bởi trương thanh hùng //ebudezain.com/
đọc dữ liệu hộ bố
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng đẹp trai
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]:
hùng đẹp trai
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:
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hù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 //ebudezain.com/
use Core\Request;
use Core\Router;
/// khởi tạo đối tượng router
$router = new Router[new Request];
// chú ý: trong đối tượng router hoàn toàn không có method get, post, put gì cả
/// nhưng ở đây mình vẫn gọi 1 method get => trong php nó sẽ chạy vào hàm __call
$router->get['/', function [] {
return "Hello world";
}];
/// tương tự khi gọi method post mà router không có method post nên sẽ chạy vào hàm __call
$router->post['/data', function [$request] {
return json_encode[$request->getBody[]];
}];
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng thông minh lắm
hùng đẹp trai
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng thông minh lắm