เฟรมเวิร์ก PHP 8.2–8.4 สำหรับสร้าง REST API
พัฒนาโดย
Cyberthai
ใช้ Composer, Medoo และระบบ routing ที่กำหนด endpoint เอง
- Routing คล้าย Laravel (
GET/POST/PUT/PATCH/DELETE) - JSON response มาตรฐานผ่าน
Core\Response - ฐานข้อมูล MySQL / MariaDB ผ่าน Medoo (
Core\Database,Core\Model) - Migration / Schema /
installรองรับเฉพาะ MySQL และ MariaDB ในเวอร์ชันนี้ - CORS จาก
CORS_ORIGINใน.env - JWT (
firebase/php-jwt) และเข้ารหัสข้อมูลด้วยCore\Cipher - CLI
php deawxสำหรับสร้าง controller, model, migration และ seeder - Migration / seeder, validation, pagination และอัปโหลดไฟล์
- จัดรูปแบบโค้ดตาม PER Coding Style 3.0
- PHP 8.2–8.4 พร้อมส่วนขยาย
curl,json,mbstring,openssl,pdo_mysql - Composer 2
- MySQL หรือ MariaDB (migration /
php deawx installรองรับเฉพาะสองตัวนี้) - Apache (เช่น XAMPP) หรือ PHP built-in server
แพ็กเกจบน Packagist คือ
deawx/cyberrestapi
ซอร์สอยู่ที่
github.com/deawx/cyberrestapi
สร้างโปรเจกต์ใหม่จาก Composer:
composer create-project deawx/cyberrestapi myapp
cd myappหรือติดตั้งเป็นแพ็กเกจในโปรเจกต์ที่มีอยู่แล้ว:
composer require deawx/cyberrestapicreate-project จะสร้าง .env แล้วใส่ ENCRYPTION_KEY กับ JWT_SECRET ให้
ถ้าติดตั้งแบบคัดลอกโฟลเดอร์เอง:
copy .env.example .env
php deawx key:generateแก้ .env ให้ DB_* ตรงกับ MySQL หรือรันตัวช่วยติดตั้งฐานข้อมูล:
php deawx install # ถามค่า DB แล้ว migrate (ถาม seed)
php deawx install -y # ไม่ถาม — อ่าน .env แล้ว migrate + seed-y / --yes = ไม่ถามคำถาม อ่าน DB_* จาก .env สร้างฐานถ้ายังไม่มี แล้ว migrate + seed (ไม่ลบตารางที่มีอยู่)
เอกสารเพิ่มเติม: Getting Started · CLI · Auth Starter
อย่า commit ไฟล์ .env — เก็บเฉพาะ .env.example ใน git
วางโฟลเดอร์โปรเจกต์ใน htdocs ของ XAMPP แล้วเปิดตามชื่อโฟลเดอร์ เช่น myapp
composer serve| Path | คำอธิบาย |
|---|---|
/ |
JSON ต้อนรับ |
/health |
สถานะ API และฐานข้อมูล |
/testview |
หน้า View ตัวอย่าง |
สร้างคลาสด้วย CLI แล้วผูกเส้นทางใน Routes/web.php
php deawx make:controller User
php deawx make:model User
php deawx make:migration create_users_table
php deawx migrate
php deawx migrate --step
php deawx migrate:status
php deawx migrate:rollback --path=users
php deawx migrate:refresh --seed
php deawx migrate:fresh --seed
php deawx db:tables
php deawx db:columns users
php deawx make:seeder UserSeeder
php deawx db:seedไฟล์จะอยู่ที่ Apps/Controllers/, Apps/Models/, Database/migrations/ และ Database/Seeders/
สร้างตารางด้วย Blueprint (ข้างในเรียก Medoo create / drop ให้) แก้ตารางเดิมใช้ Schema::table()
Schema::create('users', static function (Blueprint $table): void {
$table->id();
$table->string('email', 191)->unique();
$table->string('name');
$table->timestamps();
});Seeder หรือ query พิเศษใช้ $this->db() ของ Medoo ได้ เช่น insert, update, select
ตัวอย่างใน controller
$validated = $this->validate([
'email' => 'required|email|max:191',
'name' => 'required|min:2',
]);
$this->paginate(App\Models\User::class);
$avatar = Core\Upload::store('avatar', 'uploads/avatars');ตัวอย่างเส้นทางใน Routes/web.php
use Core\Route;
Route::get('/users', 'UserController@index');| คำสั่ง | หน้าที่ |
|---|---|
composer serve |
เปิด PHP built-in server ที่พอร์ต 8000 |
composer test |
รัน PHPUnit |
composer cs-fix |
จัดโค้ดตาม PER Coding Style 3.0 |
composer cs-check |
ตรวจสไตล์โดยไม่แก้ไฟล์ |
คู่มือเต็มอยู่ที่
GitHub Wiki
สำเนาสำหรับคัดลอกขึ้น wiki อยู่ใน docs/wiki/
- Home
- เริ่มต้นใช้งาน
- ค่าคอนฟิก
- CLI
- Routing
- Controllers
- Validation
- Models
- Pagination
- Upload
- Migration
- Seeder
- Security
- Views
- Logging
- Testing
เผยแพร่ภายใต้สัญญา MIT License
CyberRestAPI พัฒนาโดย deawx (Tirapong Chaiyakun)
- เว็บไซต์: cyberthai.net
- Email: msdos43@gmail.com
- Facebook: @Cyberthai
- Line: deawx