PHPEASY เป็นเฟรมเวิร์ก PHP ที่เน้น API รหัสใกล้เคียงกับภาษา PHP เองแทนที่จะเป็นกรอบ
I. อินโทร
ii. สิ่งที่ต้องมีก่อน
iii. การติดตั้ง
นี่คือสำหรับคนที่รักวานิลลา PHP และความเรียบง่าย ทุกวันนี้คุณต้องปฏิบัติตามมาตรฐานการเข้ารหัส (OOP, Solid, Dry, ฯลฯ ) และ MVC Frameworks เพื่อทำการพัฒนาเว็บโดยใช้ PHP เฟรมเวิร์ก PHP ออกมาพร้อมกับไฟล์การกำหนดค่าคลาสและการพึ่งพามากเกินไป ฉันทำมินิเฟรมเวิร์กนี้เพื่อให้นักพัฒนา PHP สามารถพัฒนาเว็บได้เร็วขึ้นในขณะที่เรียนรู้และเพลิดเพลินกับภาษา PHP เอง (ใช่! ไม่จำเป็นต้องเรียนรู้ห้องสมุดมากมาย)
นักแต่งเพลง - เปิดเทอร์มินัลภายในโฟลเดอร์รูทหรือ HTDOCS ของคุณและดำเนินการคำสั่งด้านล่าง
composer create-project vgalvoso/phpeasy my_phpeasy
คุณสามารถเปลี่ยน [my_phpeasy] เป็นชื่อโครงการใด ๆ ที่คุณต้องการ
ตอนนี้เปิดเบราว์เซอร์ของคุณและไปที่ http: // localhost/my_phpeasy
สร้างมุมมองภายในโฟลเดอร์ View
ดูเส้นทางจะถูกสร้างขึ้นโดยอัตโนมัติตามโครงสร้างมุมมองโฟลเดอร์
ดูตัวอย่างด้านล่าง
คุณสามารถ ommit ชื่อไฟล์ได้หากไฟล์มุมมองชื่อ [index.php]:
(SPA) แอปพลิเคชันหน้าเดียวประกอบด้วยส่วนประกอบมุมมอง
ส่วนประกอบดูสามารถเข้าถึงได้ผ่านคำขอ AJAX เท่านั้น
เพียงแค่เรียก Core/Helper/Component (); ที่ด้านบนของไฟล์มุมมองเพื่อระบุเป็นส่วนประกอบมุมมอง
ตัวอย่าง: ดู/admin/users_table.php
< ?= Core/Helper/component(); ? >
< table >
< thead >
< tr >
< th > Username </ th >
< th > First Name </ th >
< th > Last Name </ th >
</ tr >
</ thead >
< tbody id =" users_tbl " >
< tr > < td > No Contents </ td > </ tr >
</ tbody >
</ table > PHPEASY รองรับ REST API
API ทั้งหมดจะถูกวางไว้ในโฟลเดอร์ API
เส้นทาง API จะสร้างขึ้นโดยอัตโนมัติผ่านโครงสร้างไฟล์โฟลเดอร์ API และฟังก์ชั่นที่ใช้งานภายในไฟล์ PHP ที่ชื่อพร้อมคำกริยา HTTP เช่น (get (), post (), patch ())
ตัวอย่างเช่นคุณละเว้นฟังก์ชั่น DELETE () คุณไม่สามารถเรียก DELETE API/users/{id}
นี่คือตัวอย่างของผู้ใช้ REST API
เส้นทางไฟล์ API: [API/users.php]
เส้นทาง:
<?php
use Core DAL ;
use function Core Helper error ;
use function Core Helper getRequestBody ;
use function Core Helper response ;
use function Core Helper startAPI ;
startAPI ();
function get (){
$ db = new DAL ();
//GET user by id
if ( defined ( ' URI_PARAM ' )){
$ query = " SELECT * FROM users WHERE id = :id " ;
$ param = [ " id " => URI_PARAM ];
if (! $ user = $ db -> getItem ( $ query , $ param ))
response ([]);
response ([ $ user ]);
}
//GET All users
$ query = " SELECT * FROM users " ;
$ users = $ db -> getItems ( $ query );
response ( $ users );
}
function post (){
$ db = new DAL ();
$ rq = ( object ) getRequestBody ();
$ values = [
" username " => $ rq -> username ,
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ,
" usertype " => $ rq -> usertype ,
" password " => password_hash ( $ rq -> password , PASSWORD_BCRYPT )
];
if (! $ db -> insert ( " users " , $ values ))
error ( $ db -> getError ());
response ( " New User added! " );
}
function delete (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
if (! $ db -> delete ( " users " , " id=:id " ,[ " id " => $ id ]))
error ( $ db -> getError ());
response ( " User Deleted Successfuly! " );
}
function patch (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
$ rq = ( object ) getRequestBody ();
$ values = [
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ];
$ params = [ " id " => $ id ];
$ db = new DAL ();
if (! $ db -> update ( " users " , " id=:id " , $ values , $ params ))
error ( $ db -> getError ());
response ( " User Updated Successfuly " );
}
//EOF APIs ใน phpeasy ส่งเสริมรูปแบบการเข้ารหัสขั้นตอน
ดังนั้นนี่คือรายการของฟังก์ชั่นที่คุณสามารถใช้ในการใช้งาน API:
เริ่มต้นไฟล์ PHP เป็น REST API
หลังจากเรียกฟังก์ชั่นนี้แล้วคุณสามารถใช้คำกริยา HTTP เป็นฟังก์ชั่น
ตัวอย่าง:
<?php
use function Core Helper startAPI ;
startAPI ();
function get (){
//Handle GET request to api/users
}การตอบกลับข้อผิดพลาดจะได้รับหากคุณพยายามขอโดยใช้วิธี HTTP นอกเหนือจาก GET
รับการร้องขอร่างกายและแปลงเป็นอาร์เรย์ Assoc
ตัวอย่าง:
<?php
use Core Helper getRequestBody ;
$ rq = getRequestBody ();
$ username = $ rq [ " username " ];
$ password = $ rq [ " password " ];
//you can convert it to object for easy access
//$rq = (object)$rq;
//$username = $rq->username;
//$password = $rq->password; ตรวจสอบอาร์เรย์คู่คีย์-ค่าตามกฎการตรวจสอบความถูกต้อง
$inputs - อาร์เรย์เชื่อมโยงที่จะตรวจสอบ$validations - อาร์เรย์เชื่อมโยงที่มีคีย์ที่ตรงกับคีย์ใน $ data และค่าเป็นกฎการตรวจสอบความถูกต้องตัวอย่าง:
<?php
use function Core Helper getRequestBody ;
use function Core Validator validate ;
$ rq = getRequestBody ();
$ dataRules = [ " uname " => " required|string " ,
" upass " => " required|string " ,
" firstName " => " required|string " ,
" lastName " => " required|string " ];
validate ( $ rq , $ dataRules );การตอบกลับเอาต์พุตด้วยรหัสสถานะ 400 และข้อความแสดงข้อผิดพลาด
$message - String | ข้อความแสดงข้อผิดพลาดอาร์เรย์ ตั้งค่าประเภทเนื้อหาและรหัสสถานะจากนั้นเอาต์พุตเนื้อหาและออกจากสคริปต์
$content | อาร์เรย์ - เนื้อหาที่จะส่งออก$statusCode Int - รหัสสถานะการตอบกลับ (ค่าเริ่มต้น 200)$contentType String - ประเภทเนื้อหา (แอปพลิเคชันเริ่มต้น/JSON) ประเภทเนื้อหาที่มีอยู่: [แอปพลิเคชัน/JSON | ธรรมดา/ข้อความ | ข้อความ/html] รวมมุมมองที่ระบุ
$route String - View File Pathส่วนใหญ่ใช้สำหรับการโทรส่วนประกอบสปา
เปลี่ยนเส้นทางไปยังมุมมองที่ระบุ
หากไม่ได้ระบุเส้นทางให้เปลี่ยนเส้นทางตามเซสชัน
$view String - Path to View ไวยากรณ์ที่สั้นกว่าสำหรับ htmlspecialchars ()
$string - String to Sanitizeสร้างรหัสตัวอักษรและตัวเลขแบบสุ่ม
$length - ความยาวของรหัสที่จะสร้าง (ค่าเริ่มต้น 6) แยกคีย์วัตถุและค่าและจัดเก็บไปยังอาร์เรย์เซสชัน
$object - วัตถุที่จะแยกตัวอย่าง: <?php
use Core DAL ;
$ db = new DAL ();
if (! $ user = $ db -> getItem ( 1 ))
invalid ( " User does not exist! " );
objToSession ( $ userInfo );สร้างชื่อไฟล์ใหม่และอัปโหลดไฟล์
string $uploadFile $ _filestring $uploadPath ตำแหน่งสำหรับไฟล์อัปโหลดต้องเพิ่ม "/" ในตอนท้ายรับ/ตั้งค่าตัวแปรเซสชัน
$sessionVar - คีย์เซสชัน$value - ตั้งค่าเซสชันถ้าเป็นโมฆะ แปลงอาร์เรย์ของวัตถุเป็นอาร์เรย์ที่จัดทำดัชนีที่มีค่าของรายการที่ระบุ
$objArr - อาร์เรย์ถ้า iBjects เพื่อแปลง$item - รายการวัตถุเพื่อแยก PHPEASY แนะนำคลาส DAL () สำหรับการดำเนินการฐานข้อมูล รองรับ MySQL, MSSQL และ SQLITE
ตั้งค่าการกำหนดค่าฐานข้อมูลใน config/database.php
ด้านล่างเป็นฟังก์ชั่น dal ()
$ db = new DAL ();ดำเนินการคำสั่งแทรก;
$table - ชื่อตารางที่จะแทรก$values - อาร์เรย์เชื่อมโยงที่มีคีย์ที่ตรงกับฟิลด์ตารางและค่าที่จะแทรกตัวอย่าง:
$ values = [ " username " => $ uname ,
" password " => $ upass ,
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ db -> insert ( " users " , $ values );เรียกใช้คำสั่ง UPDATE
string $table ตารางเพื่ออัปเดตstring $condition เงื่อนไขเช่น id =: idarray $values ARRAY ARRAY ที่มีค่าเพื่ออัปเดตเช่น ["age" => 27]array $params สำหรับเงื่อนไขเช่น ["id" => 1]ตัวอย่าง:
$ values = [
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ params = [ " id " => 1 ];
$ db = new DAL ();
$ db -> update ( " users " , " id=:id " , $ values , $ params );ดำเนินการคำสั่งลบ
string $table ตารางที่จะลบจากstring $condition เงื่อนไขโดยใช้คำสั่งที่เตรียมไว้เช่น id =: id และชื่อ =: ชื่อarray $params สำหรับเงื่อนไขเช่น ["id" => 1, "name" => "Juan dela cruz"]ตัวอย่าง:
$ delete ( " users " , " id=:id " ,[ " id " => 1 ]);เลือกหลายรายการ
string $query เลือกarray $inputs อินพุตสำหรับคำสั่งที่เตรียมไว้ (NULL)ตัวอย่าง:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE lastname = :surname " ;
$ params = [ " surname " => $ lastName ];
$ users = $ db -> getItems ( $ sql , $ params );เลือกแบบสอบถามแถวเดียว
string $query เลือกarray $inputs อินพุตสำหรับคำสั่งที่เตรียมไว้ (NULL)ตัวอย่าง:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE id=:userId " ;
$ params = [ " userId " => 1 ];
$ users = $ db -> getItem ( $ sql , $ params );เริ่มธุรกรรมฐานข้อมูล
ทำธุรกรรมฐานข้อมูล
ธุรกรรมฐานข้อมูลย้อนกลับ
ส่งคืนข้อผิดพลาดของฐานข้อมูล
รับ LastId แทรกลงในฐานข้อมูล
string $field ระบุฟิลด์ LastID, ค่าเริ่มต้น NULL รับ Friver ฐานข้อมูลที่ใช้อยู่ในปัจจุบัน
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
คุณสามารถใช้โมเดลหรือไม่ได้ขึ้นอยู่กับข้อกำหนดของโครงการ
คลาส DAL สามารถเข้าถึงได้โดยตรงในไฟล์ API คุณสามารถเรียกใช้การสืบค้นโดยตรงเกี่ยวกับการใช้งาน API โดยไม่ต้องสร้างแบบจำลอง
PHPEASY ก้าวหน้าคุณสามารถเพิ่มรุ่นบริการถ้าคุณต้องการเพียงอัปเดตไฟล์ Composer.json หากคุณเพิ่มไดเรกทอรีอื่น ๆ
ดู