A simple and lightweight PHP router for handling HTTP requests.

Maintainers

Package info

github.com/Developer-Programming-2023/simple-router

pkg:composer/developer-programming-2023/simple-router

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-02-23 12:16 UTC

This package is auto-updated.

Last update: 2026-04-23 12:47:40 UTC


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.)

License: MIT PHP Version

📋 Mục lục

🎯 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

  1. Truy cập https://packagist.org
  2. Đăng nhập bằng tài khoản GitHub
  3. Click "Submit" (nút ở góc phải)
  4. Dán URL repo GitHub: https://github.com/YOUR-USERNAME/simple-router
  5. Click "Check" → Packagist kiểm tra composer.json
  6. Click "Submit" → Package được publish! 🎉

Bước 4: Cập nhật tự động (Webhook)

  1. Trong repo GitHub → SettingsWebhooksAdd webhook
  2. Payload URL: https://packagist.org/api/github?username=YOUR-PACKAGIST-USERNAME
  3. Content type: application/json
  4. Secret: API token từ Packagist (Profile → API Token)
  5. 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.