كيفية تنفيذ عمليات CRUD باستخدام API في PHP
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 02 سبتمبر 2024محتوى المقال
- ما هي عمليات CRUD؟
- إعداد بنية ملفات المشروع
- الاتصال بقاعدة البيانات
- إنشاء API لدعم عمليات CRUD
- اختبار API باستخدام Postman
- الخلاصة
عمليات CRUD (إنشاء، قراءة، تحديث، حذف) تُعد من العمليات الأساسية التي يتعامل معها أي مطور ويب عند بناء التطبيقات. باستخدام PHP، يمكنك بناء API تُمكّن تطبيقك من إجراء هذه العمليات بسهولة. في هذا المقال، سنستعرض كيفية تنفيذ عمليات CRUD باستخدام API في PHP.
ما هي عمليات CRUD؟
CRUD هي اختصار للأربعة عمليات الأساسية التي تُستخدم في التعامل مع البيانات:
- Create (إنشاء): إضافة بيانات جديدة.
- Read (قراءة): عرض أو جلب البيانات الموجودة.
- Update (تحديث): تعديل البيانات الموجودة.
- Delete (حذف): إزالة البيانات من النظام.
إعداد بنية ملفات المشروع
أول خطوة هي إنشاء بنية الملفات التي سنستخدمها في بناء API الخاص بنا. يمكن أن تكون البنية كالتالي:
/crud-api
├── /api
│ └── users.php
└── /config
└── database.php
هذه البنية تحتوي على مجلد api
حيث سنضع ملفات API، ومجلد config
لتخزين إعدادات قاعدة البيانات.
الاتصال بقاعدة البيانات
لنبدأ بإنشاء ملف database.php
في مجلد config
لإعداد الاتصال بقاعدة البيانات باستخدام PHP وPDO.
<?php
# إعدادات قاعدة البيانات
$host = 'localhost';
$db_name = 'crud_api_db';
$username = 'root';
$password = '';
# إنشاء اتصال PDO
$conn = null;
try {
$conn = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection error: ' . $e->getMessage();
}
?>
هذا الكود يُنشئ اتصالًا بقاعدة البيانات باستخدام PDO. إذا كان الاتصال ناجحًا، يمكننا الانتقال إلى إنشاء API.
إنشاء API لدعم عمليات CRUD
الآن، سنقوم بإنشاء ملف users.php
في مجلد api
والذي سيُستخدم لتنفيذ عمليات CRUD على بيانات المستخدمين.
إنشاء بيانات جديدة (Create)
لنبدأ بكتابة كود يسمح بإضافة مستخدم جديد إلى قاعدة البيانات باستخدام طلب POST.
<?php
# تضمين ملف الاتصال بقاعدة البيانات
require_once('../config/database.php');
# تحديد نوع الاستجابة كـ JSON
header('Content-Type: application/json');
# التحقق من طريقة الطلب HTTP
$method = $_SERVER['REQUEST_METHOD'];
# تنفيذ عملية بناءً على الطريقة
switch ($method) {
case 'POST':
# الحصول على البيانات من الجسم
$data = json_decode(file_get_contents('php://input'), true);
# استعلام لإدخال بيانات جديدة
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $data['name']);
$stmt->bindParam(':email', $data['email']);
# تنفيذ الاستعلام
if ($stmt->execute()) {
echo '{"message": "User created successfully"}';
} else {
echo '{"message": "Failed to create user"}';
}
break;
?>
قراءة البيانات (Read)
ننتقل الآن إلى قراءة بيانات المستخدمين من قاعدة البيانات باستخدام طلب GET.
case 'GET':
# استعلام لجلب جميع المستخدمين
$stmt = $conn->prepare('SELECT * FROM users');
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
# عرض النتائج بصيغة JSON
echo json_encode($users);
break;
تحديث البيانات (Update)
لتحديث بيانات مستخدم معين، سنستخدم طلب PUT. يتم التحقق من وجود المعرف (ID) لتحديد المستخدم المراد تحديث بياناته.
case 'PUT':
# الحصول على البيانات من الجسم
$data = json_decode(file_get_contents('php://input'), true);
# التحقق من وجود المعرف
if (isset($data['id'])) {
# استعلام لتحديث بيانات المستخدم
$stmt = $conn->prepare("UPDATE users SET name = :name, email = :email WHERE id = :id");
$stmt->bindParam(':name', $data['name']);
$stmt->bindParam(':email', $data['email']);
$stmt->bindParam(':id', $data['id']);
# تنفيذ الاستعلام
if ($stmt->execute()) {
echo '{"message": "User updated successfully"}';
} else {
echo '{"message": "Failed to update user"}';
}
} else {
echo '{"message": "User ID not provided"}';
}
break;
حذف البيانات (Delete)
لإزالة بيانات مستخدم من قاعدة البيانات، سنستخدم طلب DELETE. سيتم تحديد المستخدم المراد حذفه بناءً على المعرف (ID).
case 'DELETE':
# الحصول على البيانات من الجسم
$data = json_decode(file_get_contents('php://input'), true);
# التحقق من وجود المعرف
if (isset($data['id'])) {
# استعلام لحذف المستخدم
$stmt = $conn->prepare("DELETE FROM users WHERE id = :id");
$stmt->bindParam(':id', $data['id']);
# تنفيذ الاستعلام
if ($stmt->execute()) {
echo '{"message": "User deleted successfully"}';
} else {
echo '{"message": "Failed to delete user"}';
}
} else {
echo '{"message": "User ID not provided"}';
}
break;
}
اختبار API باستخدام Postman
يمكنك اختبار API التي قمنا بإنشائها باستخدام أدوات مثل Postman. Postman تتيح لك إرسال طلبات HTTP واختبار استجابات API التي قمت بإنشائها.
الخلاصة
بناء API لتنفيذ عمليات CRUD باستخدام PHP هو جزء أساسي من تطوير تطبيقات الويب الحديثة. من خلال هذه العمليات الأربع (إنشاء، قراءة، تحديث، حذف)، يمكنك إدارة البيانات بشكل كامل وفعّال. باستخدام PHP وPDO، يمكنك بناء API قوي ومرن يلبي احتياجات تطبيقاتك المتنوعة.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- حماية APIs باستخدام JWT في PHP
- التعامل مع بيانات JSON في PHP
- إنشاء توثيق API باستخدام Swagger و PHP
- استخدام OAuth 2.0 في PHP API
- كيفية اختبار APIs باستخدام Postman و PHP
- التعامل مع أخطاء API في PHP
- مقدمة إلى استخدام Composer في PHP
- كيفية تثبيت واستخدام حزم PHP باستخدام Composer
- كيفية إنشاء مكتبات PHP مخصصة
- دليل المبتدئين لتعلم HTML