deawx / cyberrestapi
Fast PHP API Framework
No longer found in upstream repository
Requires
- php: ^8.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-pdo: *
- catfan/medoo: ^2.1
- firebase/php-jwt: ^7.0
- predis/predis: ^2.2
- symfony/console: ^7.1
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- fakerphp/faker: ^1.24
- filp/whoops: ^2.15
- friendsofphp/php-cs-fixer: ^3.68
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
CyberRestAPI
เฟรมเวิร์ก 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) - 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
- 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 ของเครื่อง จากนั้นสร้างฐานข้อมูลชื่อเดียวกับ DB_NAME (ค่าเริ่มต้น cyberfastapi)
อย่า 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/
- 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