developer-programming-2023 / simple-router
A simple and lightweight PHP router for handling HTTP requests.
Package info
github.com/Developer-Programming-2023/simple-router
pkg:composer/developer-programming-2023/simple-router
Requires
- php: >=8.0
README
Simple Router
A simple and lightweight PHP router for handling HTTP requests. (Một PHP Router đơn giản và nhẹ để xử lý các HTTP request.)
📋 Mục lục
- Giới thiệu
- Yêu cầu hệ thống
- Cài đặt
- Cách sử dụng
- HTTP Methods
- Cấu trúc dự án
- Thứ tự tạo file
- Cách publish lên Packagist
- License
🎯 Giới thiệu
Simple Router là một PHP package giúp bạn định tuyến (routing) các HTTP request một cách đơn giản.
Routing là gì?
- Khi người dùng truy cập
/test→ chạy code xử lý trang test - Khi người dùng truy cập
/hello→ chạy code xử lý trang hello - Không cần tạo thư mục/file thật cho mỗi đường dẫn
Tại sao dùng package này?
- ✅ Nhẹ, không phụ thuộc thư viện khác
- ✅ Hỗ trợ tất cả HTTP methods: GET, POST, PUT, PATCH, DELETE
- ✅ 3 cách xử lý route: Closure, Named Function, File PHP
- ✅ Dễ cài đặt qua Composer
💻 Yêu cầu hệ thống
| Yêu cầu | Phiên bản |
|---|---|
| PHP | >= 8.0 |
| Composer | >= 2.0 |
📦 Cài đặt
Cách 1: Cài qua Composer (khuyến nghị)
composer require developer-programming-2023/simple-router
Cách 2: Clone từ GitHub
git clone https://github.com/Developer-Programming-2023/simple-router.git
cd simple-router
composer install
🚀 Cách sử dụng
Bước 1: Tạo file index.php
<?php // Load autoloader của Composer (BẮT BUỘC) require_once __DIR__ . '/vendor/autoload.php'; // Import class Router use DevProgramming\SimpleRouter\Router;
Bước 2: Đăng ký các Route
Cách 1: Dùng Anonymous Function (hàm ẩn danh)
Router::get('/', function () { echo "<h1>Trang chủ</h1>"; });
Cách 2: Dùng Named Function (hàm có tên)
function showTestPage() { echo "<h1>Trang test</h1>"; } Router::get('/test', 'showTestPage');
Cách 3: Trỏ đến file PHP khác
// Khi truy cập /hello → load file hello.php Router::get('/hello', __DIR__ . '/hello.php');
Bước 3: Thêm trang 404
// Nếu không có route nào khớp, code sẽ chạy đến đây http_response_code(404); echo "<h1>404 - Page Not Found</h1>";
Bước 4: Chạy thử
# cd vào thư mục chứa index.php php -S localhost:8000 # Mở trình duyệt → http://localhost:8000
📡 HTTP Methods được hỗ trợ
| Method | Chức năng | Ví dụ |
|---|---|---|
GET |
Lấy dữ liệu (mở trang, đọc API) | Router::get('/users', $handler) |
POST |
Gửi dữ liệu mới (submit form) | Router::post('/users', $handler) |
PUT |
Cập nhật toàn bộ (thay thế hoàn toàn) | Router::put('/users/1', $handler) |
PATCH |
Cập nhật một phần (sửa 1-2 field) | Router::patch('/users/1', $handler) |
DELETE |
Xóa dữ liệu | Router::delete('/users/1', $handler) |
🗂 Cấu trúc dự án
simple-router/ ← Thư mục gốc (root) của package
│
├── src/ ← 📌 Code chính của package
│ └── Router.php ← Class Router (file quan trọng nhất)
│
├── examples/ ← 📌 Ví dụ cách sử dụng
│ ├── .htaccess ← Cấu hình Apache cho examples
│ ├── index.php ← File ví dụ chính
│ └── test.php ← File PHP mẫu (load bởi Router)
│
├── vendor/ ← 🔒 Tự tạo bởi Composer (KHÔNG push lên git)
│ └── autoload.php ← File autoload
│
├── composer.json ← 📌 "Thẻ căn cước" của package
├── .htaccess ← 📌 Cấu hình Apache server
├── .gitignore ← 📌 File/folder Git bỏ qua
├── LICENSE ← 📌 Giấy phép MIT
└── README.md ← 📌 Tài liệu hướng dẫn (file này)
📝 Thứ tự tạo file khi làm package
Đây là thứ tự khuyến nghị khi bạn tạo một PHP package từ đầu:
| Thứ tự | File | Mục đích |
|---|---|---|
| 1️⃣ | src/Router.php |
Viết code chính của package trước |
| 2️⃣ | composer.json |
Cấu hình package (tên, namespace, autoload) |
| 3️⃣ | .htaccess |
Cấu hình Apache (chuyển hướng URL → index.php) |
| 4️⃣ | .gitignore |
Khai báo file/folder Git bỏ qua |
| 5️⃣ | LICENSE |
Giấy phép mã nguồn mở (MIT) |
| 6️⃣ | README.md |
Viết tài liệu hướng dẫn |
| 7️⃣ | examples/.htaccess |
Cấu hình Apache cho thư mục ví dụ |
| 8️⃣ | examples/test.php |
File PHP mẫu cho ví dụ |
| 9️⃣ | examples/index.php |
File ví dụ chính (demo cách dùng package) |
🚀 Cách publish lên Packagist
Bước 1: Tạo GitHub Repository
# Khởi tạo Git trong thư mục package git init # Thêm tất cả file (trừ file trong .gitignore) git add . # Tạo commit đầu tiên git commit -m "Initial commit: Simple Router package" # Thêm remote (thay URL bằng repo GitHub của bạn) git remote add origin https://github.com/YOUR-USERNAME/simple-router.git # Push lên GitHub git branch -M main git push -u origin main
Bước 2: Tạo Tag phiên bản
# Tạo tag v1.0.0 (Packagist dùng tag để xác định version) git tag v1.0.0 # Push tag lên GitHub git push origin v1.0.0
💡 Quy tắc đặt version:
vMAJOR.MINOR.PATCH
- MAJOR: Thay đổi lớn, không tương thích ngược (v2.0.0)
- MINOR: Thêm tính năng mới, vẫn tương thích (v1.1.0)
- PATCH: Sửa lỗi nhỏ (v1.0.1)
Bước 3: Đăng ký trên Packagist
- Truy cập https://packagist.org
- Đăng nhập bằng tài khoản GitHub
- Click "Submit" (nút ở góc phải)
- Dán URL repo GitHub:
https://github.com/YOUR-USERNAME/simple-router - Click "Check" → Packagist kiểm tra
composer.json - Click "Submit" → Package được publish! 🎉
Bước 4: Cập nhật tự động (Webhook)
- Trong repo GitHub → Settings → Webhooks → Add webhook
- Payload URL:
https://packagist.org/api/github?username=YOUR-PACKAGIST-USERNAME - Content type:
application/json - Secret: API token từ Packagist (Profile → API Token)
- Event: Just the push event
Sau khi cài webhook, mỗi lần bạn push code + tag mới → Packagist tự động cập nhật.
📄 License
MIT License - Xem file LICENSE để biết chi tiết.
Bạn được tự do sử dụng, sao chép, chỉnh sửa, và phân phối package này.