مسرد PHP من الألف إلى الياء
مسرد PHP — 124 تعريفًا
- جميع المصطلحات المعرفة في أقسام الدليل الـ31، مرتبة أبجديًا.
- تلميح: Ctrl + F للبحث عن مصطلح في الصفحة.
- «يعمل على جهازي» («Ça marche sur ma machine»)
- المشكلة التي يحلها Docker (شائعة في PHP: الإصدارات، الإضافات، الإعداد، حساسية حالة الأحرف Windows/Linux): الحاوية تحمل بيئتها معها، فتعمل في كل مكان بنفس الطريقة.
- == مقابل === / علامات الاقتباس (Guillemets)
- `==` تقارن مع تحويل النوع (فضفاضة، مفاجئة)؛ `===` تقارن القيمة والنوع معًا (صارمة، يُفضل استخدامها). علامتا الاقتباس المزدوجتان تفسّران المتغيرات، والمفردتان = نص حرفي.
- $_GET مقابل $_POST
- GET: البيانات في الرابط (URL) (ظاهرة، للبحث/الترشيح/الروابط). POST: البيانات في الجسم (غير ظاهرة، للنماذج التي تُعدّل، والبيانات الحساسة).
- واجهة REST (API REST)
- واجهة تعرض بيانات (بصيغة JSON) تستهلكها برامج أخرى (واجهة أمامية، جوال، خدمات)؛ الموارد عبر روابط (URL)، وأساليب HTTP دلالية، ورموز حالة.
- معمارية نظيفة (Architecture propre)
- فصل الطبقات، وفك الارتباط، والاعتماد على التجريدات، وشيفرة مقروءة؛ تُنتج شيفرة قابلة للصيانة والمرونة والاختبار والتطور.
- التأكيدات (Assertions)
- تحققات يُجريها الاختبار: assertEquals(المتوقع، النتيجة)، assertTrue، assertNull…؛ تفشل إذا لم تطابق الحقيقة المتوقع.
- المصادقة بالرموز (Authentification par jetons)
- لواجهات API (بلا حالة، واجهة منفصلة/جوال): بعد تسجيل الدخول، يُصدر الخادم رمزًا (JETON) يعيده العميل مع كل طلب (ترويسة Authorization) ويتحقق منه الخادم.
- المصادقة بالجلسة (Authentification par session)
- تسجيل الدخول: التحقق من المعرف + كلمة المرور، وتخزين الهوية في الجلسة؛ الصفحات المحمية: التحقق من الجلسة؛ تسجيل الخروج: إتلاف الجلسة.
- التحميل التلقائي (Autoloading) (PSR-4)
- يُحمّل تلقائيًا ملف الكلاس عند استخدامه (انتهى زمن التضمينات اليدوية)، عبر اتفاقية (PSR-4) تربط فضاءات الأسماء (Namespaces) ببنية المجلدات.
- وسوم PHP (Balises PHP)
- توضع شيفرة PHP بين ``؛ خارج الوسوم = HTML (يُرسل كما هو)، وداخلها = شيفرة PHP (تُنفَّذ). يتيح مزج PHP مع HTML.
- قاعدة البيانات / MySQL (Base de données / MySQL)
- نظام يخزن البيانات بشكل دائم (المستخدمون، المنتجات…). MySQL/MariaDB: قاعدة علائقية (جداول، صفوف، أعمدة) تُستعلَم بلغة SQL (SELECT/INSERT/UPDATE/DELETE = CRUD).
- فوائد Docker
- قابلية إعادة الإنتاج (متطابقة في كل مكان)، العزل (إصدارات PHP مختلفة بلا تعارض)، قابلية النقل، سهولة النشر، انضمام سريع (docker compose up).
- فوائد الاختبارات (Tests)
- الثقة (الشيفرة تفعل ما يجب)، منع التراجع (NON-RÉGRESSION) (كشف ما يكسره تعديل)، التوثيق (السلوك المتوقع)، تصميم أفضل (القابل للاختبار = منظم better)، كشف مبكر للأخطاء.
- بلايد (Blade) (القوالب (Templates))
- محرك قوالب Laravel: صياغة نظيفة ({{ }}، @foreach، @if) مع تهريب تلقائي (حماية XSS افتراضيًا) وتخطيطات قابلة لإعادة الاستخدام (الوراثة).
- الحلقة (Boucle)
- تُكرر معالجة بدل تكرار الشيفرة؛ لا غنى عنها لمعالجة المجموعات أو تكرار إجراء.
- break / continue
- break: يخرج من الحلقة فورًا. continue: ينتقل إلى التكرار التالي. احذر الحلقات اللانهائية (شرط لا يصبح خاطئًا أبدًا).
- CI/CD (إجراءات GitHub (GitHub Actions))
- أتمتة الشيفرة ← الإنتاج: CI (مع كل دفع، اختبار/تحقق — PHPUnit)، CD (نشر تلقائي إذا نجحت التحققات). إجراءات GitHub/GitLab CI تنشئ هذه الخطوط.
- الدوال المغلقة / الدوال الأصلية (Closures)
- دوال مجهولة (closures) وسهمية: بلا اسم، قابلة للتخزين/التمرير (callbacks). لدى PHP مئات الدوال الأصلية (strlen، array_map…) — راجع التوثيق.
- التعليقات (Commentaires)
- نص تتجاهله PHP لشرح الشيفرة: `//` أو `#` (سطر واحد)، `/* ... */` (عدة أسطر)؛ أساسية للمقروئية.
- مكونات Symfony (Composants Symfony)
- يتكون Symfony من مكونات مستقلة (التوجيه، النماذج، الأمان، سطر الأوامر…) قابلة للاستخدام منفصلة؛ مشاريع كثيرة (منها Laravel) تستخدمها في الخفاء.
- كومبوزر (Composer)
- مدير اعتماديات (DÉPENDANCES) PHP (مكافئ npm): تثبيت المكتبات الخارجية وإدارة إصداراتها؛ غيّر منظومة PHP.
- composer.json / vendor
- يُعلن composer.json الاعتماديات؛ `composer install` يُنزّلها (مجلد vendor/، غير مُنسَخ، قابل لإعادة التوليد) ويُولّد المحمّل التلقائي (vendor/autoload.php). composer.lock يُثبّت الإصدارات.
- الربط (Concaténation) (.)
- في PHP، تُجمَّع السلاسل بالنقطة `.` (لا `+`): `'Bonjour ' . $nom`.
- الإعداد والأسرار (Configuration & secrets)
- المعاملات والأسرار (معرفات القاعدة، المفاتيح) تُقدَّم من بيئة الإنتاج، ولا توضع أبدًا في الشيفرة/مستودع Git (متغيرات البيئة، ملف .env خارج المستودع).
- المتحكم (Contrôleur (Controller))
- يصنع الرابط: يستقبل الطلب، ويستدعي النموذج للبيانات، ويختار العرض لعرضها مع هذه البيانات؛ يُنسّق النموذج والعرض.
- ملفات تعريف الارتباط (Cookies) ($_COOKIE)
- بيانات صغيرة مخزنة في المتصفح، تُعاد مع كل طلب (setcookie / $_COOKIE)؛ من جهة العميل (قابلة للتعديل) — مع خيارات أمان HttpOnly وSecure وSameSite.
- جهة الخادم مقابل جهة العميل (Serveur vs Client)
- الخادم (PHP): يُنفّذ المنطق (النماذج، القاعدة، المصادقة) ويُولّد الصفحات. العميل (المتصفح): يعرض HTML/CSS ويُنفّذ JavaScript.
- CRUD
- العمليات الأربع الأساسية: Create (INSERT)، Read (SELECT)، Update (UPDATE)، Delete (DELETE)؛ تُنجَز مع PDO واستعلامات محضرة، مع استرجاع (fetch/fetchAll).
- CSRF ← الرموز (Jetons)
- إجبار مستخدم مسجل على تنفيذ إجراء دون علمه (طلب مزوَّر)؛ الحماية: رموز CSRF (فريد لكل نموذج، يُتحقَّق منه) وملف تعريف ارتباط SameSite.
- الدورة طلب ← PHP ← HTML (Cycle requête → PHP → HTML)
- يطلب المستخدم صفحة ← يُنفّذ الخادم شيفرة PHP ← تُولّد PHP لغة HTML ← يعرضها المتصفح. تتكرر هذه الدورة مع كل طلب.
- التواريخ (Dates) (DateTime)
- تتعامل PHP الحديثة مع التواريخ عبر الكلاس DateTime/DateTimeImmutable: إنشاء، تنسيق للعرض (->format)، حساب الفروق (->diff)، جمع/طرح.
- النشر / الاستضافة (Déploiement / hébergement)
- تشغيل تطبيق PHP على خادم متاح عبر الإنترنت. الخيارات: استضافة مشتركة (بسيطة، اقتصادية)، PaaS (مبسطة)، VPS (تحكم + مسؤوليات)، سحابة.
- أنماط التصميم (Design patterns)
- حلول مُجرَّبة لمشاكل تصميم متكررة (وصفات تنظيم مُتحقَّق منها)؛ تمنح مفردات مشتركة. مثل Factory وRepository وStrategy وObserver وحقن الاعتماديات (Dependency Injection).
- التقدير (مقابل الهندسة المفرطة) (Sur-ingénierie)
- تطبيق الأنماط وSOLID باعتدال حسب المشكلة؛ الهندسة المفرطة (بنية زائدة بلا داع) فخ مثل الهندسة الناقصة (الفوضى). أوجد المستوى المناسب.
- دوكر / الحاويات (Docker / conteneurisation)
- أداة تُغلّف تطبيقًا مع كل بيئته (PHP، الإضافات، الإعداد، الاعتماديات) في حاوية معزولة وقابلة للنقل، تعمل بنفس الطريقة في كل مكان.
- دوكر كومبوز (Docker Compose) (حزمة PHP (Stack PHP))
- ملف docker-compose.yml يُعرّف عدة حاويات (PHP/Nginx + MySQL + Redis…) وعلاقاتها، تُطلَق معًا (docker compose up)؛ يصف كل حزمة PHP.
- دوكترين (Doctrine) (ORM)
- مُخطِّط الكائنات المرتبط بـSymfony: معالجة كيانات (ENTITÉS) (كائنات) بدل SQL، واستعلامات محضرة تلقائيًا، وعلاقات، وهجرات؛ مقاربة «مُخطِّط البيانات» (Data Mapper) (مقابل السجل النشط (Active Record) في Eloquent).
- مجلد جذر الويب / localhost (Dossier racine web)
- المجلد الذي توضع فيه ملفات .php (htdocs، www) لتُقدَّم؛ يُوصَل إليه عبر http://localhost (جهازك الخاص).
- echo
- بنية للعرض (إنتاج مخرجات): `echo 'Bonjour';` تُولّد نصًا/HTML في الصفحة. أداة الإخراج الأساسية (وأيضًا `print`).
- إيلوكوينت (Eloquent) (ORM)
- مُخطِّط Laravel: الجداول ← كلاسات (نماذج)، والصفوف ← كائنات؛ معالجة القاعدة عبر كائنات/أساليب (Produit::all()) بدل SQL، مع استعلامات محضرة تلقائيًا وإدارة العلاقات.
- التغليف / الرؤية (Encapsulation / visibilité)
- تجميع البيانات والسلوكيات، وضبط الوصول عبر الرؤية: public (في كل مكان)، private (الكلاس وحده)، protected (الكلاس + الوارثات). خصائص private + وصولات (getters/setters) لحماية الحالة.
- البيئة المحلية (AMP) (Environnement local)
- ما يلزم لتشغيل PHP وقاعدة على جهازك للتطوير/الاختبار. AMP = خادم ويب (Apache)، PHP، قاعدة (MySQL) — تُثبَّت غالبًا معًا عبر حزمة.
- إرسال البريد الإلكتروني (E-mails)
- الدالة الأصلية mail() أساسية/غير موثوقة؛ استخدم مكتبات مخصصة (PHPMailer، Symfony Mailer) للموثوقية. لا تحقن أبدًا بيانات غير مضبوطة في الترويسات.
- أساسيات إنتاج PHP
- HTTPS، والأخطاء غير معروضة (تُسجَّل)، وOPcache مُفعَّل، ومحمّل Composer التلقائي مُحسَّن، والهجرات مُنفَّذة عند النشر، وبيئات منفصلة (dev/staging/prod).
- التعابير النمطية (Expressions régulières (regex))
- لغة مصغرة تصف أنماطًا في النص؛ preg_match (تطابُق؟)، preg_replace (استبدال). قوية لكن صعبة.
- filter_var للتحقق (Valider)
- للتحققات الشائعة (بريد، رابط…)، فضّل filter_var (FILTER_VALIDATE_EMAIL…) على تعبير نمطي منزلي — أكثر موثوقية. احتفظ بالتعابير للأنماط الخاصة.
- الدالة (Fonction)
- كتلة شيفرة قابلة لإعادة الاستخدام تُنجز مهمة: `function saluer($nom) { return ... }`، تُستدعَى باسمها. تتجنب التكرار، وتُحسّن المقروئية والصيانة.
- دوال المصفوفات/السلاسل
- مئات الدوال الأصلية: المصفوفات (count، in_array، array_map/filter/reduce، sort، implode/explode…)، والسلاسل (strlen، str_replace، substr، trim، str_contains…).
- الدوال متعددة البايت (mb_) (Multi-octets)
- لمعالجة Unicode بشكل صحيح (المحارف المُشكَّلة/غير اللاتينية): mb_strlen، mb_substr…؛ الدوال الكلاسيكية تعمل على البايتات (مشكلة في UTF-8).
- for
- حلقة بعدّاد، عندما يُعرَف عدد التكرارات: `for ($i = 0; $i < 10; $i++) { ... }` (تهيئة؛ شرط؛ زيادة).
- foreach
- حلقة لاجتياز مصفوفة (الأكثر استخدامًا): `foreach ($tab as $valeur)` (كل قيمة) أو `foreach ($tab as $cle => $valeur)` (أزواج مفتاح ← قيمة).
- النموذج / المتغيرات الفائقة (Formulaire / superglobales)
- ترسل النماذج بيانات إلى الخادم، تسترجعها PHP عبر متغيرات فائقة (مصفوفات خاصة متاحة في كل مكان): $_GET، $_POST، $_FILES، $_SESSION…
- المنطقة الزمنية وصيغة التخزين (Fuseau & stockage)
- نقطتا يقظة: ضبط المنطقة الزمنية (وإلا أوقات خاطئة)؛ تخزين التواريخ بصيغة معيارية (ISO سنة-شهر-يوم) وتنسيقها عند العرض فقط.
- إدارة الملفات (Fichiers)
- قراءة/كتابة ملفات الخادم: file_get_contents، file_put_contents، fopen/fread/fwrite، file_exists، unlink (حذف).
- Git للنشر (Déployer)
- النشر عبر Git (الخادم يسترجع الشيفرة من المستودع) بدل نقل الملفات يدويًا (FTP) — أكثر موثوقية وقابلية للتتبع.
- التشفير / HTTPS / الأسرار (Hachage / HTTPS / secrets)
- كلمات المرور مُجزَّأة (password_hash/verify، لا تُخزَّن أبدًا واضحة)؛ HTTPS (تشفير)؛ الأسرار خارج الشيفرة (متغيرات البيئة)؛ الأخطاء غير معروضة في الإنتاج؛ الاعتماديات مُحدَّثة.
- الوراثة (Héritage)
- كلاس يرث من آخر (`class Admin extends User`): يحصل على خصائصه/أساليبه، وقد يضيف أو يُعيد التعريف؛ يتيح إعادة الاستخدام والتخصيص.
- HTTP بلا حالة (Stateless) (Sans état)
- كل طلب HTTP مستقل، والخادم لا يتذكر السابقة؛ تضيف ملفات الارتباط والجلسات «ذاكرة» بين الصفحات.
- if / elseif / else
- يُنفّذ كتلة إذا كان شرط صحيحًا؛ else (وإلا)، elseif (وإلا إذا، عدة شروط متسلسلة). يُقيَّم الشرط إلى true/false.
- الصورة / Dockerfile / الحاوية (Image / conteneur)
- الصورة: نموذج جامد للتطبيق + البيئة، يُعرَّف بملف Dockerfile (وصفة: صورة PHP أساسية، إضافات، شيفرة، اعتماديات Composer). الحاوية: نسخة قيد التشغيل.
- include / require
- يُدخِلان محتوى ملف في آخر. require: خطأ قاتل إذا تعذّر العثور عليه (الملفات الضرورية). include: تحذير ويواصل (الاختيارية).
- حقن SQL (Injection SQL)
- ثغرة حرجة: ربط بيانات المستخدم في استعلام SQL يتيح لمهاجم حقن SQL خبيث (قراءة/تعديل/تدمير القاعدة). يجب تجنبه مطلقًا.
- حقن SQL ← الاستعلامات المحضرة (Requêtes préparées)
- حقن SQL عبر بيانات مربوطة؛ الحماية: استعلامات محضرة (PDO) دائمًا، ولا ربط أبدًا في SQL.
- الواجهات / السمات (Interfaces / traits)
- الواجهة: «عقد» أساليب يجب على الكلاس تنفيذها (البرمجة بالعقد، فك الارتباط). السمة (Trait): إعادة استخدام أساليب في عدة كلاسات بلا وراثة (مشاركة أفقية).
- مفسّر PHP (Interpréteur PHP)
- البرنامج الذي يُنفّذ شيفرة PHP على الخادم؛ لا يرى الزائر شيفرة PHP أبدًا، بل HTML الناتج فقط.
- JWT (رمز الويب JSON (JSON Web Token))
- رمز مُوقَّع تشفيريًا (محمول ذاتيًا، بلا تخزين خادم)، شائع جدًا لواجهات API؛ يُعاد مع كل طلب ويُتحقَّق منه. مناسب للواجهات المنفصلة والجوال.
- لارافيل (Laravel)
- إطار عمل (Framework) PHP الأشهر (أنيق، منتج، منظومة واسعة)؛ يُنفّذ MVC ويوفر أدوات قوية تطبق أفضل الممارسات. مرجع PHP الحديثة.
- لارافيل مقابل سيمفوني (Laravel vs Symfony)
- إطارا عمل ممتازان ناضجان: Laravel أسهل وصولًا/إنتاجية؛ Symfony أكثر صرامة/وحداتية/مؤسساتية. المفاهيم نفسها (MVC، ORM، قوالب) — قابلة للنقل.
- الهجرات (Migrations)
- نظام يُنسِخ بنية القاعدة (إنشاء/تعديل الجداول عبر شيفرة PHP مُنسَخة): بنية قابلة لإعادة الإنتاج، وتطور مُتتبَّع — أساسي في الفريق وعند النشر.
- التخزين المؤقت (Mise en cache) (Redis)
- تخزين نتائج مكلفة (استعلامات متكررة، حسابات، صفحات) لتجنب إعادتها؛ Redis (أو Memcached) = تخزين في الذاكرة سريع يعمل كذاكرة تخزين. غالبًا الرافعة الأكثر تأثيرًا.
- النموذج (Modèle (Model))
- يدير البيانات ومنطق العمل (LOGIQUE MÉTIER): الوصول إلى القاعدة، والكيانات (مستخدم، منتج)، وقواعد العمل — باستقلال عن العرض.
- MVC (نموذج-عرض-متحكم (Modèle-Vue-Contrôleur))
- نمط معمارية يفصل التطبيق إلى ثلاث مسؤوليات: النموذج (البيانات/منطق العمل)، العرض (الإظهار)، المتحكم (التنسيق). أساس أطر الويب.
- فضاءات الأسماء (Namespaces) (espaces de noms)
- تُنظّم الكلاسات في «فضاءات» منطقية وتتجنب تعارض الأسماء (يتعايش `User`ان في فضاءين مختلفين). الإعلان `namespace App\Models;`، والاستيراد بـ`use`.
- لا تثق أبدًا بالمدخلات (Entrées)
- كل بيانات المستخدم (نموذج، رابط) قد تكون خاطئة أو خبيثة؛ تحقق وطهّر دائمًا من جهة الخادم قبل استخدامها.
- لا تُحسِّن قبل الأوان (Optimiser prématurément)
- شيفرة صحيحة وواضحة أولًا، وقِس عند حدوث مشكلة، ثم حسّن باستهداف. التحسين المبكر يُضيع الوقت ويُعقّد بلا داع.
- مستويات الاختبارات (Tests)
- وحدوية (دالة/كلاس معزول)، تكامل (عدة أجزاء معًا، مثل مع القاعدة)، وظيفية/شاملة (التطبيق كما يراه مستخدم).
- الدمج الفارغ ?? / match (Null coalescent)
- `??` يُعيد اليسار إذا وُجد ولم يكن null، وإلا اليمين (قيم افتراضية). `match` (PHP 8+) = switch عصري، صارم، يُعيد قيمة.
- OPcache
- إضافة تُخزّن بايت PHP المُترجَم مؤقتًا: لا تُترجَم إلا مرة واحدة (بدل كل طلب) — مكسب أداء كبير شبه مجاني. تُفعَّل، خاصة في الإنتاج.
- المعاملات (Opérateurs)
- حسابية (+ - * / % **)، إسناد (=، +=…)، مقارنة (==، ===، !=، <، >…)، منطقية (&& || !).
- تحسين القاعدة (Base)
- غالبًا الاختناق الحقيقي: استعلامات بطيئة/غير مفهرسة، مشكلة N+1 (استعلام لكل عنصر — تُصحَّح بالتحميل المسبق (eager loading)). الفهرسة وتحسين الاستعلامات غالبًا الأكثر تأثيرًا.
- التنظيم بالتضمينات (Inclusions)
- فصل الشيفرة إلى ملفات منطقية (إعداد، دوال، ترويسة/تذييل، صفحات) تُجمَّع بالتضمينات؛ أول خطوة نحو معمارية نظيفة (MVC، تحميل تلقائي).
- الحزمة المتكاملة (Pack tout-en-un)
- تثبيت يجمع خادم ويب + PHP + قاعدة بيانات: XAMPP (متعدد المنصات)، Laragon، WampServer (Windows)، MAMP (macOS) — الأبسط للبدء.
- Packagist / المنظومة (Écosystème)
- مستودع حزم PHP (عبر Composer): منظومة ضخمة من المكتبات القابلة لإعادة الاستخدام — ثبّت مكونات مُجرَّبة بدل كتابة كل شيء.
- الصفحة الديناميكية (Page dynamique)
- صفحة يُولّدها الخادم، غالبًا مخصصة (حسب المستخدم، البيانات)؛ مقابل صفحة HTML ثابتة متطابقة دائمًا.
- المعاملات / الإرجاع (Paramètres / retour)
- المعاملات: بيانات تُمرَّر مدخَلًا (مع قيم افتراضية ممكنة). الإرجاع (عبر `return`): النتيجة المُعادة. مداخل الدالة ومخارجها.
- الأنماط الشائعة (PHP) (Patterns courants)
- Singleton (نسخة وحيدة، يُستخدَم باقتصاد)، Factory (إنشاء الكائنات)، Repository (تركيز الوصول إلى البيانات)، حقن الاعتماديات (توفير الاعتماديات من الخارج) — تستخدمها أطر العمل.
- PDO
- كائنات بيانات PHP (PHP Data Objects): واجهة عصرية وموحدة وآمنة للاتصال بالقواعد وتنفيذ الاستعلامات؛ تعمل مع عدة أنواع قواعد (تجريد).
- PHP
- لغة برمجة من جهة الخادم مصممة للويب (PHP: Hypertext Preprocessor)؛ تُنفَّذ على الخادم وتُولّد HTML يُرسَل إلى المتصفح.
- phpinfo()
- دالة تعرض معلومات إعداد PHP؛ ملف info.php مع phpinfo() يتحقق من عمل البيئة ويُظهر الإصدار المثبت.
- phpMyAdmin
- واجهة ويب (مضمنة في الحزم) لإنشاء قواعد بيانات MySQL وإدارتها بلا سطر أوامر.
- الفاصلة المنقوطة (Point-virgule)
- تُنهي كل تعليمة PHP (`;`)؛ نسيانها يُحدث خطأ صياغة — خطأ المبتدئين الأكثر شيوعًا.
- تعدد الأشكال / التجريد (Polymorphisme / abstraction)
- تعدد الأشكال: كائنات من كلاسات مختلفة تستجيب للأسلوب نفسه باختلاف. التجريد: إخفاء التعقيد خلف واجهات بسيطة.
- البرمجة كائنية التوجه / الكلاس / الكائن (POO / Classe / Objet)
- نموذج يُنظّم الشيفرة حول كائنات (بيانات + سلوكيات). الكلاس نموذج (خصائص + أساليب)؛ والكائن نسخة (`new User()`). $this = الكائن الحالي؛ __construct = الباني (تهيئة).
- النطاق (Portée (scope))
- المتغير المُعرَّف داخل دالة محلي (غير مرئي خارجها)؛ والمتغير الخارجي غير متاح داخل الدالة. عزل مقصود — مرِّر البيانات معاملات (PARAMÈTRES).
- التنميط / قِس قبل التحسين (Profiler / mesurer)
- تحديد الاختناقات الحقيقية بالقياس (التنميط) قبل التحسين (قاعدة ذهبية)؛ تجنب التحسين عميانيًا أو مبكرًا.
- الاستعلام المحضر (Requête préparée)
- استعلام بعلامات (? أو :nom) تُمرَّر معه البيانات منفصلة (prepare ثم execute)؛ تعاملها القاعدة كبيانات خالصة — فيصبح حقن SQL مستحيلًا.
- require_once / include_once
- يضمنان تضمين الملف مرة واحدة فقط (يتجنبان التضمينات المتعددة وإعادة التعريف) — يُفضَّلان غالبًا.
- الموارد والأساليب (API) (Ressources & méthodes)
- GET /api/produits (سرد)، GET /{id} (قراءة)، POST (إنشاء، 201)، PUT/PATCH (تعديل)، DELETE (حذف)؛ ردود JSON بالرموز الصحيحة (200، 201، 400، 401، 404…).
- التوجيه / المتحكمات / Artisan (Routage / contrôleurs)
- التوجيه: ربط الروابط (URL) بالإجراءات (Route::get). المتحكمات: كلاسات تعالج الطلبات. Artisan: سطر الأوامر (توليد الشيفرة، الهجرات…).
- التوجيه / تدفق MVC (Flux MVC)
- يُوجِّه التوجيه الطلب إلى المتحكم المناسب؛ التدفق: طلب ← توجيه ← متحكم ← نموذج (بيانات) ← عرض (إظهار). يفصل البيانات والعرض والتنسيق.
- أمان API
- مصادقة برموز آمنة، HTTPS (ضروري — الرموز تتداول)، التحقق من المدخلات، التفويض (الصلاحيات)، إدارة أخطاء نظيفة (رموز/JSON)، تحديد المعدل (rate limiting).
- أمان الجلسة (Session)
- كلمات مرور مُجزَّأة (password_hash/verify)، وتجديد المعرف عند الدخول (ضد التثبيت)، وملفات ارتباط آمنة (HttpOnly/Secure/SameSite)، وHTTPS، وضبط الوصول (التفويض).
- الجلسات (Sessions) ($_SESSION)
- حالة مخزنة من جهة الخادم (غير قابلة للتعديل من المستخدم)، ولا يحتفظ المتصفح إلا بمعرف الجلسة. session_start() ثم $_SESSION. الآلية الآمنة.
- SOLID
- خمسة مبادئ تصميم كائنية: المسؤولية الواحدة (Single Responsibility)، المفتوح/المغلق (Open/Closed) (توسيع بلا تعديل)، ليسكوف (Liskov)، فصل الواجهات (Interface Segregation)، عكس الاعتماديات (Dependency Inversion) (الاعتماد على التجريدات).
- switch
- يقارن متغيرًا واحدًا بعدة قيم (case)، أوضح من سلسلة elseif؛ `break` يخرج من switch (نسيانه يُسقِط في الحالة التالية)؛ default للحالات الأخرى.
- سيمفوني (Symfony)
- إطار عمل PHP الكبير الآخر (مع Laravel)، مشهور بالصرامة والوحداتية، ومحبوب في المؤسسات والمشاريع الكبيرة؛ معمارية بمكونات قابلة لإعادة الاستخدام.
- الصياغة المختصرة = ?> (Syntaxe courte)
- مكافئ ``: `= $variable ?>` يعرض متغيرًا، عملي في قوالب HTML. المتغيرات حساسة لحالة الأحرف (لا الكلمات المفتاحية).
- المصفوفة الترابطية (Tableau associatif)
- مجموعة عناصر تُوصَل بمفتاح نصي: `$personne = ['nom' => 'Alice']; $personne['nom']`. منتشرة (بيانات منظمة).
- المصفوفة المفهرسة (Tableau indexé)
- مجموعة عناصر تُوصَل بفهرس رقمي (من 0): `$fruits = ['pomme', 'banane']; $fruits[0]`.
- المصفوفة متعددة الأبعاد (Multidimensionnel)
- مصفوفات داخل مصفوفات (مثل قائمة مستخدمين، كل واحد مصفوفة ترابطية)؛ تُمثّل بيانات معقدة.
- TDD (التطوير الموجه بالاختبارات (Test-Driven Development))
- كتابة الاختبارات قبل الشيفرة (الاختبار يُعرّف ما يجب أن تفعله الشيفرة، ثم تُكتَب لتنجحه)؛ انضباط يُحسّن التصميم.
- الثلاثي (Ternaire)
- اختصار if/else يُعيد قيمة: `condition ? valeurSiVrai : valeurSiFaux`. عملي للإسنادات الشرطية القصيرة.
- الاختبارات الآلية / PHPUnit (Tests automatisés)
- شيفرة تختبر شيفرتك (قابلة لإعادة التشغيل متى شئت)، بدل التحقق اليدوي. PHPUnit إطار الاختبار المعياري لـPHP (يُثبَّت عبر Composer).
- تويغ (Twig) (القوالب (Templates))
- محرك قوالب Symfony: صياغة نظيفة وآمنة ({{ }}، {% for %}، {% if %}) مع تهريب تلقائي (XSS) ووراثة؛ محبوب خارج Symfony أيضًا.
- ترميز المعاملات/الإرجاع (Typage)
- إعلان الأنواع (`function f(int $a): int`) يُوثّق، ويصطاد أخطاء، ويجعل الشيفرة متينة — يُنصَح به بشدة في PHP الحديثة.
- الترميز الديناميكي (Typage dynamique)
- تُحدِّد PHP النوع حسب القيمة (بلا إعلان مسبق)؛ وقد يُغيّر المتغير نوعه. الأنواع: string، int، float، bool، array، null، object.
- الرفوعات ($_FILES) — الأمان (Uploads — sécurité)
- ملفات يرسلها المستخدم ($_FILES)، تُعالَج بحذر: التحقق من النوع/الحجم، إعادة التسمية، التخزين خارج الجذر/بلا تنفيذ PHP، وتحديد الامتدادات. مصدر كلاسيكي للثغرات.
- القيم «الخاطئة» (Falsy) (Valeurs «falsy»)
- قيم تعتبرها PHP «خاطئة» في شرط: false، 0، سلسلة فارغة، '0'، null، مصفوفة فارغة؛ والباقي «صحيح».
- تحقق الخادم الإلزامي (Validation serveur)
- تحقق العميل (JavaScript) يُحسّن التجربة لكنه قابل للالتفاف؛ تحقق الخادم (PHP) إلزامي — هو الذي يحمي فعلًا.
- التحقق (Valider)
- التحقق من أن البيانات بالصيغة المتوقعة (بريد صالح، عدد موجب، حقل مطلوب) ورفضها وإلا؛ يساعد filter_var() (بريد، رابط، عدد صحيح…).
- المتغير ($)
- يخزن بيانات؛ يبدأ دائمًا بـ`$` (`$nom`)، ويُسنَد بـ`=` (`$age = 30;`). الاسم حساس لحالة الأحرف، ويُختار واضحًا ومعبرًا.
- العرض (Vue (View))
- يدير الإظهار: HTML، ما يراه المستخدم؛ يستقبل بيانات مُعدَّة ويعرضها، بلا منطق عمل.
- while / do...while
- while: تُكرر ما دام شرط صحيحًا (عدد مجهول). do...while: تُنفَّذ مرة واحدة على الأقل (الاختبار في النهاية).
- XSS ← htmlspecialchars
- حقن JavaScript تُنفَّذ لدى مستخدمين آخرين (عرض بيانات غير مُهرَّبة)؛ الحماية: التهريب عند العرض بـhtmlspecialchars().