PHP بدون APIs: إزاي كل Request بيشتغل فعليًا
كتير من الناس فاكرة إن PHP بيشتغل بشكل مختلف لما تبني API عن لما تبني موقع عادي بصفحات HTML.
الحقيقة أبسط وأذكى من كده بكتير.
PHP لا يعرف أصلاً يعني إيه API.
هو يعرف حاجة واحدة بس:
HTTP Request داخل → كود يتنفّذ → HTTP Response يطلع.
خلّينا نمشي الرحلة من أولها.
1️⃣ كل حاجة بتبدأ بـ Request
لما تفتح لينك زي:
https://example.com/profile
المتصفح بيبعت:
-
Method (GET / POST)
-
Path (
/profile) -
Headers
-
Cookies
⚠️ مفيش أي فرق هنا بين:
-
صفحة HTML
-
API endpoint
-
Admin panel
كلهم Requests.
2️⃣ السيرفر هو اللي يسلّم الطلب لـ PHP
سواء Apache أو Nginx، السيرفر بيشوف الطلب ويقرر:
“مين هيتعامل مع الطلب ده؟”
في أغلب مشاريع PHP الحديثة، كل الطلبات بتروح على ملف واحد:
index.php
وده اسمه Front Controller Pattern
يعني مدخل واحد لكل حاجة.
3️⃣ PHP يصحى… وينفّذ index.php
أول ما الطلب يوصل:
-
PHP يبدأ من أول سطر
-
ينفّذ الكود سطر بسطر
-
مفيش state
-
مفيش ذاكرة محفوظة
-
مفيش Application شغالة طول الوقت
كل Request = تشغيل جديد تمامًا.
4️⃣ Routing في PHP = Logic مش API
خلّينا نبسّطها:
الـ Routing في PHP native ممكن يكون if.
مثال بسيط:
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if ($uri === '/profile') {
require 'pages/profile.php';
} elseif ($uri === '/login') {
require 'pages/login.php';
} else {
http_response_code(404);
echo 'Page Not Found';
}
ده Routing.
مش Framework.
مش API.
مجرد منطق.
Laravel و Symfony عملوا نفس الفكرة… بس بشكل أنضف وأسهل.
5️⃣ الفرق الوحيد: نوع الـ Response
هنا بقى الناس بتتلخبط.
صفحة عادية (HTML):
echo "
Welcome
";
API (JSON):
header('Content-Type: application/json');
echo json_encode(['status' => 'ok']);
📌 نفس Request
📌 نفس PHP
📌 نفس Lifecycle
الفرق بس في الإخراج.
6️⃣ PHP يخلص… ويموت
بعد ما PHP يطلع الـ Response:
-
الذاكرة تتنضف
-
المتغيرات تختفي
-
السكربت ينتهي
☠️ PHP لا يفضل شغال
☠️ لا يحتفظ بحالة
☠️ لا يعرف الطلب اللي فات
الطلب اللي بعده = حياة جديدة.
الحقيقة اللي كتير بيفوتها
❌ API مش حاجة خاصة في PHP
✅ API = Route بيرجع JSON
أي PHP App ممكن يكون:
-
موقع
-
لوحة تحكم
-
REST API
-
Backend لموبايل
من غير ما PHP يفرّق.
طب Laravel بيعمل إيه؟
Laravel:
-
ما اخترعش طريقة جديدة
-
ما غيّرش PHP
هو بس:
-
نظّم Routing
-
فصل Logic
-
أضاف Middleware
-
سهّل الحياة
لكن تحت الكابوت؟
👉 index.php
👉 Request واحدة
👉 Response واحدة
👉 End of story
الموديل الذهني الصح
اعتبر PHP كده:
موظف شاطر
يستلم رسالة
يرد عليها
ويمشي
مش سيرفر
مش Engine
مش دايمون
وده سر قوته وسهولة الـ Scaling بتاعته.
لو حابب نكمل، نقدر:
-
نكتب نفس Laravel route بـ PHP native
-
نقارن PHP بـ Node.js في الـ lifecycle
-
نفهم ليه PHP مناسب جدًا للـ high traffic
قولّي تحب نكمل في إيه 🎯