วิสัยทัศน์ของโครงการนี้คือการช่วยให้นักพัฒนาสามารถดำเนินการ CRUD ขั้นพื้นฐานได้อย่างง่ายดายโดยไม่จำเป็นต้องเขียนรหัส PHP ที่กำหนดเอง สคริปต์ได้รับการออกแบบให้เป็นแบบไดนามิกช่วยให้ผู้ใช้สามารถโต้ตอบกับ API ได้ง่ายๆโดยการทำความเข้าใจเอกสารที่ให้ไว้และการร้องขอ HTTP
create.php )read.php )update.php )delete.php )file-upload.php )เอกสารนี้ให้ภาพรวมของชุดสคริปต์ PHP ที่ออกแบบมาสำหรับการดำเนินการ CRUD ขั้นพื้นฐาน (สร้างอ่านอัปเดตลบ) และการอัปโหลดไฟล์ สคริปต์มีวัตถุประสงค์เพื่อใช้เป็น API สำหรับการจัดการข้อมูลในฐานข้อมูลเชิงสัมพันธ์
โครงการนี้มีชุดสคริปต์ PHP ที่ออกแบบมาเพื่อทำหน้าที่เป็น API อย่างง่ายสำหรับการดำเนินการ CRUD (สร้าง, อ่าน, อัปเดต, ลบ) การดำเนินงานในฐานข้อมูลเชิงสัมพันธ์ นอกจากนี้ยังมีสคริปต์สำหรับการจัดการการอัปโหลดไฟล์ สคริปต์มีวัตถุประสงค์เพื่อเสนอโซลูชันที่ยืดหยุ่นและขยายได้สำหรับการจัดการการโต้ตอบข้อมูลด้วยเซิร์ฟเวอร์แบ็กเอนด์
ก่อนที่จะใช้สคริปต์ตรวจสอบให้แน่ใจว่าการเชื่อมต่อฐานข้อมูลได้รับการกำหนดค่าอย่างเหมาะสม รายละเอียดการเชื่อมต่อสามารถพบได้ในไฟล์ configuration/connection.php แก้ไขไฟล์เพื่อตั้งค่าโฮสต์ฐานข้อมูลชื่อผู้ใช้รหัสผ่านและชื่อฐานข้อมูล
ตัวอย่าง configuration/connection.php :
define ( ' DB_SERVER ' , ' YOUR_HOSTNAME ' );
define ( ' DB_USERNAME ' , ' YOUR_USERNAME ' );
define ( ' DB_PASSWORD ' , ' YOUR_PASSWORD ' );
define ( ' DB_NAME ' , ' YOUR_DATABASE ' );คำอธิบาย: สคริปต์นี้จัดการการสร้างระเบียนใหม่ในฐานข้อมูลตามข้อมูล JSON ที่ให้ไว้
table (จำเป็น): ชื่อของตารางฐานข้อมูลเพื่อแทรกข้อมูลลงในvalidation (ไม่บังคับ): กฎการตรวจสอบความถูกต้องสำหรับข้อมูลdata (จำเป็น): อาร์เรย์ของบันทึกที่จะแทรก validation ต้องใช้เพื่อตรวจสอบข้อมูลตามกฎที่ให้ไว้ มีกฎการตรวจสอบความถูกต้องต่อไปนี้:
required : ฟิลด์จะต้องไม่ว่างเปล่าstring : ฟิลด์ต้องเป็นสตริงที่ถูกต้องname : ฟิลด์ต้องเป็นชื่อที่ถูกต้องและไม่มีจำนวนเต็มหรืออักขระพิเศษใด ๆemail : ฟิลด์ต้องเป็นรูปแบบอีเมลที่ถูกต้องnumeric : ฟิลด์ต้องเป็นตัวเลขmin-length:X : ฟิลด์ต้องมีความยาวอย่างน้อย x อักขระmax-length:X : ฟิลด์ต้องมีความยาว x อักขระมากที่สุดlength:X : ฟิลด์ต้องมีความยาวอักขระ xunique : ค่าฟิลด์จะต้องไม่ซ้ำกันภายในตารางที่ระบุ | มันจะตรวจสอบ id ในขณะที่อัปเดตเร็กคอร์ดถ้ามันเหมือนกันก็จะอัปเดตคอลัมน์ body ในคำขอ API {
"table" : " users " ,
"validation" : [
{
"name" : " required|string " ,
"email" : " required|email|unique " ,
"phone" : " required|numeric|unique|length:10 " ,
"password" : " required|min-length:6 " ,
"age" : " optional|numeric "
}
],
"data" : [
{
"name" : " Imdadullah " ,
"email" : " [email protected] " ,
"phone" : " 9992229990 " ,
"password" : " VerySecurePassword " ,
"age" : 22
}
]
}คำอธิบาย: สคริปต์นี้ดึงข้อมูลจากฐานข้อมูลตามพารามิเตอร์ที่ระบุ
table (จำเป็น): ชื่อของตารางฐานข้อมูลเพื่อสอบถามselect (จำเป็น): อาร์เรย์ของคอลัมน์ที่จะเลือก ค่าเริ่มต้นคือคอลัมน์ทั้งหมด (*)join (ไม่บังคับ): อาร์เรย์ของคำสั่งเข้าร่วมสำหรับการดำเนินการเข้าร่วมconditions (ไม่บังคับ): อาร์เรย์ของเงื่อนไขที่มีวัตถุที่มี on , type และ value สำหรับการกรองข้อมูลrawConditions (ไม่บังคับ): อาร์เรย์ของสภาพดิบสำหรับการกรองข้อมูลทำให้คุณผ่าน conditions หรือ rawConditionsorder (ไม่บังคับ): วัตถุที่มี on และ type สำหรับการสั่งซื้อข้อมูลlimit (ไม่บังคับ): จำกัด จำนวนระเบียนที่ส่งคืน body ในคำขอ API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"conditions" : [
{
"on" : " age " ,
"type" : " >= " ,
"value" : " 18 "
},
{
"on" : " status " ,
"type" : " = " ,
"value" : " active "
},
{
"on" : " email " ,
"type" : " LIKE " ,
"value" : " @gmail.com% "
}
],
"limit" : 10
}body ที่มี rawConditions ในคำขอ API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}body ด้วยพารามิเตอร์ JOIN หมายเหตุ: คุณจะต้องพูดถึงชื่อตารางแต่ละชื่อพร้อมกับชื่อคอลัมน์ที่จะใช้ JOIN
{
"table" : " users " ,
"select" : [
" users.name " ,
" users.email " ,
" items.title " ,
" items.price " ,
" purchases.amount " ,
" purchases.created_at AS purchased_date "
],
"conditions" : [
{
"on" : " purchases.item_id " ,
"type" : " = " ,
"value" : " 102 "
}
],
"join" : [
{
"table" : " purchases " ,
"on" : [ " purchases.user_id " , " users.id " ],
"type" : " LEFT "
},
{
"table" : " items " ,
"on" : [ " items.id " , " purchases.item_id " ],
"type" : " LEFT "
}
]
}คำอธิบาย: สคริปต์นี้อัปเดตเร็กคอร์ดที่มีอยู่ในฐานข้อมูลตามพารามิเตอร์ที่ระบุ
table (จำเป็น): ชื่อของตารางฐานข้อมูลเพื่อสอบถามdata (จำเป็น): อาร์เรย์ของฟิลด์และค่าที่จะอัปเดตconditions (จำเป็น): อาร์เรย์ของเงื่อนไขสำหรับการระบุบันทึกเพื่ออัปเดตvalidation (ไม่บังคับ): กฎการตรวจสอบความถูกต้องสำหรับข้อมูล body ในคำขอ API {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}คำอธิบาย: สคริปต์นี้ลบระเบียนจากฐานข้อมูลตามพารามิเตอร์ที่ระบุ
table (จำเป็น): ชื่อของตารางฐานข้อมูลที่จะลบออกจากconditions (จำเป็น): อาร์เรย์ของเงื่อนไขสำหรับการระบุบันทึกเพื่อลบ body ในคำขอ API {
"table" : " users " ,
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}คำอธิบาย: สคริปต์นี้จัดการการอัปโหลดไฟล์ไปยังปลายทางที่ระบุ
fileDestination (จำเป็น): ไดเรกทอรีที่จะเก็บไฟล์ไว้fileValidation (จำเป็น): รายการส่วนขยายไฟล์ที่ได้รับอนุญาตหมายเหตุ: คุณสามารถอัปโหลดหลายไฟล์ได้พร้อมกันและสิ่งนี้จะไม่แทรกลงในตารางฐานข้อมูลของคุณคุณจะได้รับ URL เป็นการตอบกลับและคุณสามารถบันทึกลงในฐานข้อมูล
< script >
const uploadButton = document.getElementById("button");
uploadButton.addEventListener("click", async function () {
const fileInput = document . getElementById ( "file" ) ;
const imageInput = document . getElementById ( "image" ) ;
const file = fileInput . files [ 0 ] ;
const image = imageInput . files [ 0 ] ;
const formData = new FormData ( ) ;
formData . append ( "file" , file ) ;
formData . append ( "image" , image ) ;
formData . append ( "fileDestination" , "files" ) ; // Files will be uploaded to the mentioned destination on the 'uploaded' directory
formData . append ( "fileValidation" , [ "jpg" , "png" , "pdf" ] ) ;
const request = await fetch ( "YOUR_API_REQUEST_ENDPOINT" , {
method : "POST" ,
body : formData ,
} ) ;
const response = await request . json ( ) ;
console . log ( response ) ;
} );
</ script > {
"file": "uploads/files/2024011984368.jpg",
"image": "uploads/files/2024011960039.jpg"
}
หมายเหตุ: ปรับแต่งและขยายสคริปต์ตามข้อกำหนดของโครงการของคุณ ตรวจสอบให้แน่ใจว่ามีการตรวจสอบความถูกต้องและมาตรการรักษาความปลอดภัยที่เหมาะสมในสภาพแวดล้อมการผลิต
สำหรับมาตรการความปลอดภัยเพิ่มเติมหรือตรรกะที่กำหนดเองนักพัฒนาสามารถขยายฟังก์ชันการทำงานโดยการเพิ่มตรรกะของตัวเองลงในไฟล์ configuration/custom-functions.php นี่เป็นพื้นที่สำหรับรวมการตรวจสอบโทเค็นการรับรองความถูกต้องที่กำหนดเองหรือมาตรการความปลอดภัยอื่น ๆ ตามข้อกำหนดของโครงการ
โครงการนี้ได้รับการพัฒนาโดย Imdadullah Babu สคริปต์มีจุดมุ่งหมายเพื่อให้รากฐานสำหรับนักพัฒนา PHP เพื่อรวมการดำเนินงานฐานข้อมูลพื้นฐานและการอัปโหลดไฟล์ลงในโครงการของพวกเขาโดยไม่ต้องเขียนรหัสที่ทำซ้ำได้
โครงการนี้เป็นโอเพ่นซอร์สและเรายินดีต้อนรับการมีส่วนร่วมจากนักพัฒนาทั่วโลก ไม่ว่าคุณจะสนใจที่จะเพิ่มคุณสมบัติใหม่การปรับปรุงเอกสารการแก้ไขข้อบกพร่องหรือการแนะนำการปรับปรุงการมีส่วนร่วมของคุณมีค่า
เราสามารถทำให้โครงการนี้มีความหลากหลายและเป็นประโยชน์ต่อชุมชนนักพัฒนา การมีส่วนร่วมของคุณไม่ว่าเล็กหรือใหญ่ได้รับการชื่นชมอย่างมาก
ขอบคุณที่เป็นส่วนหนึ่งของการเดินทางโอเพนซอร์ซของเรา!