PHP
لغة الخوادم التي تشغّل جزءًا كبيرًا من الويب
الصياغة والمتغيرات، المصفوفات والدوال، النماذج والجلسات، البرمجة كائنية التوجه، والاتصال بـ MySQL بأمان عبر PDO — مع تشغيل PHP 8 مباشرة في المتصفح.
- عدد الدروس: 47
- عدد الفصول: 7
- بالعربية والإنجليزية
تقدّمك
محتوى التوثيق
الدروس مرتّبة من الأساس إلى المتقدّم. اقرأها بالترتيب أو اقفز إلى ما تحتاجه.
الفصل 1
البداية
- 1مقدمة في PHPتعرّف على PHP: لغة برمجة الخادم التي تشغّل جزءًا كبيرًا من مواقع الويب، وكيف تعمل، ولماذا ما زالت خيارًا قويًا مع الإصدار الحديث PHP 8.
- 2تثبيت PHP وتشغيلهاجهّز بيئة PHP على جهازك باستخدام XAMPP أو Laragon، ثم شغّل ملفاتك من الطرفية أو عبر خادم التطوير المدمج php -S.
- 3قواعد الصياغة في PHPتعرّف على قواعد كتابة PHP: الوسم <?php، والفاصلة المنقوطة في نهاية كل أمر، والكتل بين الأقواس المعقوصة، وأيّ الأسماء حساسة لحالة الأحرف.
- 4التعليقات في PHPاكتب ملاحظات داخل كودك لا تنفّذها PHP، باستخدام تعليقات السطر الواحد // و#، والتعليقات متعددة الأسطر /* */، وتعليقات التوثيق (DocBlocks).
- 5الإخراج باستخدام echo وprintاعرض النصوص والقيم باستخدام echo وprint، وتعرّف على الفرق بينهما، وعلى طباعة عدة قيم، وإدراج المتغيرات داخل النصوص، وأداتي الفحص print_r وvar_dump.
الفصل 2
أساسيات اللغة
- 6المتغيرات في PHPخزّن البيانات في متغيرات تبدأ بالرمز $، وتعرّف على قواعد التسمية، وكيف تغيّر القيم، ولماذا لا تحتاج إلى تحديد النوع مسبقًا.
- 7أنواع البياناتتعرّف على أنواع البيانات في PHP: النصوص والأعداد الصحيحة والعشرية والقيم المنطقية والمصفوفات والكائنات وnull، وافحصها باستخدام var_dump()، وحوّل بينها.
- 8النصوص في PHPأنشئ النصوص بعلامات التنصيص المفردة والمزدوجة، وادمجها بالنقطة، وأدرج المتغيرات داخلها، واستخدم رموز الهروب وصيغتي heredoc وnowdoc للنصوص الطويلة.
- 9دوال النصوصاستخدم الدوال المدمجة لمعالجة النصوص: معرفة الطول، وتغيير حالة الأحرف، والبحث والاستبدال، والاقتطاع، والتقسيم والدمج، والتنسيق باستخدام sprintf().
- 10الأعداد والرياضياتتعامل مع الأعداد الصحيحة والعشرية، وتعرّف على القسمة وباقي القسمة والأس، ودقة الأعداد العشرية، ودوال التقريب والرياضيات، وتنسيق الأرقام للعرض.
- 11الثوابتعرّف قيمًا لا تتغير باستخدام const وdefine()، وتعرّف على الثوابت المدمجة والثوابت السحرية مثل __LINE__ و__DIR__.
- 12العوامل في PHPتعرّف على عوامل PHP: الإسناد والزيادة والمقارنة (بما فيها == و=== و<=>) والعوامل المنطقية، وعامل الدمج مع null ??، والعامل الشرطي الثلاثي.
الفصل 3
التحكم في التدفق
- 13جمل الشرط if...elseاتخذ القرارات في برنامجك باستخدام if وelse وelseif، واجمع الشروط بالعوامل المنطقية، واستخدم الصيغة البديلة داخل قوالب HTML.
- 14جملة switchاختر أحد عدة مسارات بناءً على قيمة واحدة باستخدام switch، وافهم دور break ومشكلة الانتقال إلى الحالة التالية (Fall-through).
- 15تعبير matchاستخدم تعبير match من PHP 8: بديل أقصر وأكثر أمانًا من switch، يعيد قيمة، ويقارن مقارنة صارمة، ولا يحتاج إلى break.
- 16حلقتا while وdo...whileكرّر تنفيذ الكود ما دام الشرط صحيحًا باستخدام while، أو نفّذه مرة واحدة على الأقل باستخدام do...while، وتجنّب الحلقات اللانهائية.
- 17حلقة forاستخدم حلقة for عندما تعرف عدد مرات التكرار مسبقًا: تهيئة وشرط وخطوة في سطر واحد، مع أمثلة على العد التنازلي والحلقات المتداخلة.
- 18حلقة foreachمرّ على عناصر المصفوفات بسهولة باستخدام foreach: القيم وحدها، أو المفاتيح مع القيم، أو مع تعديل العناصر بالمرجع، أو مع تفكيك المصفوفات المتداخلة.
- 19الأمران break وcontinueتحكّم في سير الحلقات: أوقفها تمامًا باستخدام break، أو تخطَّ التكرار الحالي باستخدام continue، حتى في الحلقات المتداخلة.
الفصل 4
الدوال
- 20الدوال في PHPعرّف دوالك الخاصة باستخدام function، ومرّر إليها الوسائط، وأعِد النتائج باستخدام return، واكتب كودًا منظمًا قابلًا لإعادة الاستخدام.
- 21معاملات الدوال والأنواعاجعل دوالك أوضح وأكثر أمانًا: حدد أنواع المعاملات والقيم المعادة، واستخدم القيم الافتراضية والوسائط المسماة، واستقبل عددًا غير محدد من الوسائط.
- 22نطاق المتغيراتافهم أين يمكن استخدام كل متغير: النطاق المحلي داخل الدوال، والنطاق العام والكلمة global، والمتغيرات الساكنة static التي تحتفظ بقيمتها بين الاستدعاءات.
- 23الدوال المجهولة والسهميةأنشئ دوال بلا اسم وخزّنها في متغيرات، والتقط المتغيرات الخارجية باستخدام use، واكتب دوالًا قصيرة بالصيغة السهمية fn، ومرّرها إلى دوال أخرى.
الفصل 5
المصفوفات
- 24المصفوفات المفهرسةخزّن قائمة من القيم في متغير واحد، واقرأ عناصرها بالفهرس، وأضف وعدّل واحذف، واعرف عدد العناصر، ومرّ عليها بالحلقات، وفكّكها إلى متغيرات.
- 25المصفوفات الترابطيةاستخدم مفاتيح نصية ذات معنى بدلًا من الأرقام، وأضف القيم وعدّلها واحذفها، وتحقق من وجود المفاتيح، ومرّ على أزواج المفاتيح والقيم باستخدام foreach.
- 26المصفوفات متعددة الأبعادخزّن البيانات المركّبة في مصفوفات داخل مصفوفات، مثل قائمة طلاب لكل منهم بياناته، واقرأها وعدّلها، ومرّ عليها، واستخرج منها أعمدة كاملة.
- 27دوال المصفوفاترتّب المصفوفات وابحث فيها وحوّلها: عائلة دوال الترتيب sort، وarray_map وarray_filter وarray_reduce، وin_array وarray_search وarray_merge وغيرها.
الفصل 6
البرمجة كائنية التوجه
- 28الأصناف والكائناتادخل عالم البرمجة كائنية التوجه: عرّف صنفًا بخصائص ودوال، وأنشئ منه كائنات باستخدام new، واستخدم $this للوصول إلى بيانات الكائن.
- 29الدالة البانية (Constructor)هيّئ كائناتك لحظة إنشائها باستخدام __construct()، واختصر الكود بترقية خصائص الدالة البانية (Constructor Property Promotion) في PHP 8، وتعرّف على الدالة الهادمة.
- 30محددات الوصول وreadonlyاحمِ بيانات كائناتك باستخدام public وprotected وprivate، واكتب دوال الوصول مع التحقق، واجعل الخصائص للقراءة فقط باستخدام readonly.
- 31الوراثةأنشئ أصنافًا جديدة تبني على أصناف موجودة باستخدام extends، وأعِد تعريف الدوال، واستدعِ دوال الصنف الأب عبر parent::، وامنع الوراثة باستخدام final.
- 32الأصناف المجردة والواجهاتصمّم عقودًا واضحة بين أجزاء برنامجك: الأصناف المجردة abstract التي تجمع الكود المشترك، والواجهات interface التي تحدد ما يجب على الصنف تنفيذه.
- 33الأعضاء الساكنة وثوابت الأصنافتعرّف على الخصائص والدوال الساكنة static التي تنتمي إلى الصنف نفسه لا إلى كائن بعينه، وعلى ثوابت الأصناف، والفرق بين self:: وstatic::.
- 34السمات (Traits)شارك الدوال بين أصناف غير مرتبطة دون وراثة باستخدام السمات trait، واستخدم عدة سمات معًا، وحلّ تعارض الأسماء بينها.
- 35التعدادات (Enums)عرّف مجموعة ثابتة من القيم الممكنة باستخدام enum (من PHP 8.1): التعدادات البسيطة والمدعومة بقيم، والدوال from() وtryFrom() وcases()، وإضافة دوال إلى التعداد.
- 36الاستثناءات ومعالجة الأخطاءتعامل مع الأخطاء باحترافية: ارمِ الاستثناءات باستخدام throw، والتقطها باستخدام try وcatch وfinally، وأنشئ أصناف استثناءات خاصة بك.
- 37مساحات الأسماء والتحميل التلقائينظّم أصنافك في مساحات أسماء namespace لتجنّب تعارض الأسماء، واستوردها باستخدام use، ودع Composer يحمّل ملفاتها تلقائيًا وفق معيار PSR-4.
الفصل 7
الويب والبيانات
- 38المتغيرات العامة الفائقة (Superglobals)تعرّف على المصفوفات المدمجة المتاحة في كل مكان: $_GET و$_POST لبيانات الطلب، و$_SERVER لمعلومات الخادم والطلب، وغيرها.
- 39النماذج والتحقق من المدخلاتاستقبل بيانات النماذج بأمان: تحقق من الحقول المطلوبة والبريد الإلكتروني والأطوال، واعرض رسائل الأخطاء، واحتفظ بقيم المستخدم، واتّبع نمط PRG.
- 40الجلسات وملفات تعريف الارتباطاحفظ بيانات المستخدم بين الطلبات: الجلسات $_SESSION لحفظ البيانات على الخادم مثل حالة تسجيل الدخول، وملفات تعريف الارتباط (Cookies) لحفظ تفضيلات بسيطة في المتصفح.
- 41تضمين الملفات: include وrequireقسّم موقعك إلى ملفات قابلة لإعادة الاستخدام، وضمّنها باستخدام include وrequire ونسختيهما _once، واعرف الفرق بينها ومتى تستخدم كلًّا منها.
- 42التعامل مع JSONحوّل مصفوفات PHP وكائناتها إلى JSON باستخدام json_encode()، وحوّل JSON إلى بيانات PHP باستخدام json_decode()، وتعامل مع الأخطاء والنصوص العربية.
- 43التاريخ والوقتنسّق التواريخ باستخدام date()، وتعامل معها باحترافية عبر الصنفين DateTime وDateTimeImmutable: الإضافة والطرح وحساب الفروق والمناطق الزمنية.
- 44قواعد بيانات MySQL باستخدام PDOاتصل بقاعدة بيانات MySQL باستخدام PDO، ونفّذ عمليات الإضافة والقراءة والتعديل والحذف (CRUD) بأمان عبر الاستعلامات المجهزة (Prepared Statements)، واستخدم المعاملات (Transactions).
- 45أساسيات أمان PHPاحمِ تطبيقك من أشهر الهجمات: XSS عبر htmlspecialchars()، وحقن SQL عبر الاستعلامات المجهزة، وتخزين كلمات المرور بأمان عبر password_hash()، وهجمات CSRF عبر الرموز العشوائية.
- 46مدير الحزم Composerاستخدم Composer، مدير الحزم القياسي في PHP، لتثبيت المكتبات وإدارة اعتماديات مشروعك وتحميل الأصناف تلقائيًا، وافهم الملفين composer.json وcomposer.lock.
- 47الخطوات التاليةراجع ما تعلمته في مشروع مصغّر يجمع المفاهيم كلها، وتعرّف على أفضل الممارسات والأدوات الاحترافية، وخطّط لطريقك نحو Laravel.