Skip to content

Repository files navigation

Cyberthai

CyberRestAPI

เฟรมเวิร์ก PHP 8.2–8.4 สำหรับสร้าง REST API
พัฒนาโดย Cyberthai ใช้ Composer, Medoo และระบบ routing ที่กำหนด endpoint เอง

Packagist Version Total Downloads GitHub Wiki License

คุณสมบัติ

  • 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/cyberrestapi

create-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

รันโปรเจกต์

Apache (XAMPP)

วางโฟลเดอร์โปรเจกต์ใน htdocs ของ XAMPP แล้วเปิดตามชื่อโฟลเดอร์ เช่น myapp

PHP built-in server

composer serve
Path คำอธิบาย
/ JSON ต้อนรับ
/health สถานะ API และฐานข้อมูล
/testview หน้า View ตัวอย่าง

เพิ่ม API ของตัวเอง

สร้างคลาสด้วย 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

คำสั่ง หน้าที่
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/

สัญญาอนุญาต

เผยแพร่ภายใต้สัญญา MIT License

ผู้พัฒนา

CyberRestAPI พัฒนาโดย deawx (Tirapong Chaiyakun)

About

CyberRestAPI เฟรมเวิร์ก PHP ที่มีประสิทธิภาพสูง ออกแบบมาเพื่อการพัฒนา API โดยเฉพาะ ให้สภาพแวดล้อมที่รวดเร็ว ปลอดภัย และใช้งานง่ายในการสร้างแอปพลิเคชัน API ที่แข็งแกร่ง

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages