تطبيق class/ object جزء الثاني
الكاتب: Mr.Aziz
تاريخ النشر: 2022-10-08 10:48:43
مساء الخير
أخر مره عرفنا ماهو oop و تعلمنا عنه. وألان سوف نتعلم ماهو class و object مع التطبيق.
مثل ماقلت class يكون تابع له object مثلآ السيارات هو class و انواع هو مازدا و تويوتا و نيسان وهكذا.
الان سوف نشرح التطبيق العملي في php
الجميل في هذي اللغة لاتحتاج مكان معين لتبدء فيه.
تستطيع بداء استخدام class في اي مكان بالصفحة حتى لو صفحة ثانيه. مثلآ صفحة خاصة بالكلاسات.
class يتم كتابة بهذي طريقة
أولآ نستخدم class ثم القوسين
مثال:
ألان استخدمنا class هو يعتبر مفتاح الاساسي تبع class
لازم نستخدمه اذا جينا نستخدم class تمام
ثم أسم اي اسم تبع class مثلآ انا بختار السيارات.
الان نضع له متغيرات مع دوال مثلآ مانوع السيارات و اللون.
و ايضآ راح نستخدم set و get ليتم استدعاء القيمة التي بداخل المتغيرات.
بيكون بهذي طريقة
ألان يوجد له متغيرتين و معاه public؟
طيب ليه مانكتب public زي باقي اللغات!
في اللغة php لازم تعرف المتغير او الدالة نفسه هل هو خاص او عام
اول شي نكتب public ثم اسم المتغير او الدالة مثل ماوضحت
الان وضعت متغيرتين عباره عن public ليتم استخدامه الى خارج class
طريقة استخدام الدالة بيكون بهذي طريقة
الان وضعت دالة function بأسم set_name ثم وضعنا متغير في parameter هو $model
بداخل الدالة وضعت كلمة محجوزه هي this هذا لما تضع هذي كلمة يخبرك اي من متغيرات تريد؟
نستدعي عن طريق public model
ولكن $model داخل parameter هذا مجرد متغير يتم تمرير القيمة فقط.
الان نجي نستخدم get لكي نستدعي اي قيمة خلال وجوده بخارج الكلاس.
هنا نفس طريقة الدالة الى قبل ولكن بدون parameter
و بداخل الدالة فقط reutrn الى المتغير التي متواجد في public
الان نستخدم object لكي يتم استدعاء class car التي عملناه
تذكرو دائمآ class بدون object يعتبر لاشئ و فائدته يكاد يذكر بالاساس.
الان نستخدم new لكي يتم تعريف object جديد
بيكون بهذي طريقة
ألان وضعت له متغير جديد بأسم nissan
ثم = new هنا يتم انشاء object جديد تابع car()
بكذا nissan اصبح object و بأمكانك استدعاء اي متغير او دالة من خلال هذي المتغير.
بعد كذا نستخدم المتغير الاستدعاء الدالة set_name و بنفس الوقت نكتب نوع السياره هو Maxima
و echo يتم طباعة المتغير التي تم كتابتها في set_name و نكتب المتغير ثم نستدعي get_name
بكذا يتم طباعة المتغير بدون اي مشاكل.
للعلم
$nissan = new (car(
بهذي طريقة بامكانك أستخدامه في اي صفحة عندك بالويب بدون اي مشاكل.
بعد ماأنتهينا بيكون بهذي طريقة class مع object
طيب وش رايكم نعمل طريقة صلاحيات !
نعمل دالة عباره عن مستخدم اذا كان أدمن أو لا
في حال انه أدمن يتم ادخال الصفحة مخصصة الادمن فقط.
اذا كان عضو عادي لايمكن استخدام الصفحة.
بكل بساطة نعمل دالة بهذي طريقة
أولآ وضعت class بأسم user
كذا بيكون class خاص بالمستخدمين فقط.
في حال المستخدم دخل الصفحة هو ادمن سوف يظهر له معلومات خاصة باللوحة التحكم
غير كذالك لن يظهر له اي شي
ثم عملنا دالة خاصة هل هو ادمن!
set ليتم استخدام القيمة و get نستطيع استخدامه بالخارج الكلاس.
ثم بداخل الدالة فقط استدعيت المتغير user نفسه بحيث لو استخدمته
يتم المقارنة بين المستخدم و الدالة
كذا انتهينا
خلنا نعمل صفحة ثانيه باسم admin على سبيل المثال
بيكون بهذي طريقة
أولآ وضعت include_once ليتم استدعاء الصفحة التي متواجد فيه الكلاس
طبعآ الكلاس موجود في index.php
ثم وضعت متغير جديد بأسم $IsADMIN ثم وضعت new user ليتم استدعاء الكلاس
التي عملناه قبل قليل.
و خلينا نتخيل انه هذا النتيجة في حال اي مستخدم بالعالم دخل بيظهر له بهذي طريقة.
زي ماتلاحظ فوق بالصفحة ظهرت لنا معلومات تبع اللوحة التحكم.
كيف نفعل الخاصية في حال المستخدم Admin او لا !
بيكون بهذي طريقة
أولآ استدعينا الدالتين الي هم get و set
set نضع له متغير هو user في حال المستخدم لايوجد له صلاحيات الادمن لن يظهر له الصفحة.
.نضع الشرط زي ماتعلمنا المره السابقة
if() تمام
ثم نضع اذا كان هذا ادمن صحيح؟ او لا
$IsADMIN راح يكون لبناء على الدالة التي عملناه بداخل الكلاس
مثل ماوضعنا القيمة هو admin
في حال المستخدم admin راح يدخل و غير ذالك لا.
زي ماتلاحظ الان وضعت بهذي طريقة
هل set_isAdmin يساوي user ؟ اذا يتساوى سوف يظهر له الصفحة خاصه بالادمن
اذا وضعت علامة تعجب != يعني هذا المستخدم له صلاحيات ادمن
سوف يظهر له صفحة لوحة التحكم
مثل كذا
زي ماهو واضح بالصوره
الان وضعت get_isadmin != "user" تعني القيمة التي متواجده في set_IS_admin هو user
لايساوي "user" ؟ سوف يظهر هذي الصفحة لانه المستخدم له صلاحيات
وبس هذا وضع class و ممكن يكون شوي معقد بس لما تستخدم session بيسهل عليك واجد.
أشوفكم على خير