該項目的願景是使開發人員毫不費力地執行基本的CRUD操作,而無需編寫自定義PHP代碼。這些腳本被設計為動態,使用戶可以通過了解提供的文檔並提出HTTP請求來與API進行交互。
create.php )read.php )update.php )delete.php )file-upload.php )該文檔提供了一組專為基本CRUD操作(創建,讀取,更新,刪除)和文件上傳的PHP腳本的概述。這些腳本旨在用作關係數據庫中數據的API。
該項目提供了一組PHP腳本,旨在用作關係數據庫上的CRUD(創建,讀取,更新,刪除)操作的簡單API。此外,它包括一個用於處理文件上傳的腳本。這些腳本旨在提供一種靈活且可擴展的解決方案,用於與後端服務器管理數據交互。
在使用腳本之前,請確保正確配置數據庫連接。連接詳細信息可以在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 :字段必須完全是x字符長。unique :字段值必須在指定表|中是唯一的。它將在更新記錄時檢查id ,如果相同,則只需更新列即可。 body {
"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或rawConditions 。order (可選):帶有on對象並type用於訂購數據的對象。limit (可選):限制返回的記錄數。 body {
"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
}rawConditions示例body {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}JOIN參數的示例body注意:您必須提及每個表名稱以及要使用的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 {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}描述:此腳本基於指定參數從數據庫中刪除記錄。
table (必需):要從中刪除的數據庫表的名稱。conditions (必需):識別記錄刪除的一系列條件。 body {
"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開發人員提供基礎,以將基本數據庫操作集成並在不編寫可重複代碼的情況下將上傳到其項目中。
該項目是開源的,我們歡迎全球開發人員的捐款。無論您有興趣添加新功能,改進文檔,修復錯誤還是建議增強功能,您的貢獻都很有價值。
共同使我們可以使該項目對開發人員社區更加通用和有益。您的貢獻(無論大小,都得到高度讚賞。
感謝您成為我們開源旅程的一部分!