تتمثل رؤية هذا المشروع في تمكين المطورين من أداء عمليات CRUD الأساسية دون عناء دون الحاجة إلى كتابة رمز PHP مخصص. تم تصميم البرامج النصية لتكون ديناميكية ، مما يتيح للمستخدمين التفاعل مع واجهة برمجة التطبيقات ببساطة عن طريق فهم الوثائق المقدمة وتقديم طلبات HTTP.
create.php )read.php )update.php )delete.php )file-upload.php )توفر هذه الوثائق نظرة عامة على مجموعة من البرامج النصية PHP المصممة لعمليات CRUD الأساسية (إنشاء ، قراءة ، تحديث ، حذف) وتحميلات الملفات. تهدف البرامج النصية إلى استخدامها كواجهة برمجة تطبيقات لإدارة البيانات في قاعدة بيانات علائقية.
يوفر هذا المشروع مجموعة من البرامج النصية PHP المصممة لتكون بمثابة واجهة برمجة تطبيقات بسيطة لأداء عمليات 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 : يجب أن يكون الحقل أحرف X الطويلة.unique : يجب أن تكون قيمة الحقل فريدة من نوعها ضمن الجدول المحدد | سيتحقق من 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 أو rawConditions .order (اختياري): كائن مع 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 لدمج عمليات قاعدة البيانات الأساسية وتحميل الملفات في مشاريعهم دون كتابة رموز قابلة للتكرار.
هذا المشروع مفتوح المصدر ، ونحن نرحب بالمساهمات من المطورين في جميع أنحاء العالم. سواء كنت مهتمًا بإضافة ميزات جديدة ، أو تحسين الوثائق ، أو إصلاح الأخطاء ، أو اقتراح تحسينات ، فإن مساهماتك ذات قيمة.
معًا ، يمكننا أن نجعل هذا المشروع أكثر تنوعًا ومفيدًا لمجتمع المطورين. مساهماتك ، كبيرة أو صغيرة ، موضع تقدير كبير.
شكرا لكونك جزءًا من رحلتنا مفتوحة المصدر!