مسرد PHP من الألف إلى الياء

مسرد PHP — 124 تعريفًا

«يعمل على جهازي» («Ç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)
مكافئ ``: `` يعرض متغيرًا، عملي في قوالب 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().